1. 程式人生 > >Mysql系列三:Centos6下安裝Mysql和Mysql主從復制的搭建

Mysql系列三:Centos6下安裝Mysql和Mysql主從復制的搭建

sso libc mage 進行 我們 服務器 後繼 lis list

一、Centos6下安裝Mysql

檢測下系統有沒有自帶的mysql:yum list installed | grep mysql,
如果已經有的話執行命令yum -y remove mysql-libs.x86_64卸載已經安裝的mysql。

1. 系統約定

安裝文件下載目錄:/data/software
Mysql目錄安裝位置:/usr/local/mysql
數據庫保存位置:/data/mysql
日誌保存位置:/data/log/mysql

2. 下載mysql

執行如下命名:

mkdir -p /data/software
cd /data/software

技術分享圖片

--下載安裝包

在官網:http://dev.mysql.com/downloads/mysql/ 中,選擇以下版本的mysql下載:

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

說明:此時如果提示bash: wget: command not found,執行yum -y install wget,再執行wget下載命令

3. 解壓壓縮包到目標位置

cd /data/software

--解壓壓縮包

tar -xzvf /software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

--移動並修改文件名

mv /software/mysql-5.7.17-
linux-glibc2.5-x86_64 /usr/local/mysql

4. 創建數據倉庫目錄

mkdir -p /data/mysql    

5. 新建mysql用戶、組及目錄

useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql     ---新建msyql用戶禁止登錄shell

說明:這裏如果提示useradd:“mysql”組不存在,執行groupadd mysql添加組以後再執行

技術分享圖片

6. 改變目錄屬有者

cd /usr/local/mysql
chown -R mysql .
chgrp -R mysql .
chown 
-R mysql /data/mysql

技術分享圖片

7. 配置參數

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

說明:

這裏可能會報如下的錯誤

技術分享圖片

解決方法:yum install -y libaio

解決完錯誤以後繼續執行:# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

技術分享圖片

此處需要註意記錄生成的臨時密碼,如上文結尾處的:)u!7G!Q3jZ>&

繼續執行:

bin/mysql_ssl_rsa_setup  --datadir=/data/mysql

技術分享圖片

8. 修改系統配置文件

cd /usr/local/mysql/support-files
cp my-default.cnf /etc/my.cnf
cp mysql.server /etc/init.d/mysql

技術分享圖片


vim /etc/init.d/mysql

修改以下內容:

技術分享圖片

9. 啟動和遠程連接mysql

/etc/init.d/mysql start

--登陸mysql

mysql -hlocalhost -uroot -p

說明:

如果出現:-bash: mysql: command not found

就執行: # ln -s /usr/local/mysql/bin/mysql /usr/bin --沒有出現就不用執行

--輸入第6步生成的臨時密碼

--修改密碼

mysql> set password=password(‘123456‘);

--設置root賬戶的host地址(修改了才可以遠程連接

mysql>grant all privileges on *.* to root@% identified by 123456;
mysql>flush privileges;

--查看用戶信息

mysql> use mysql;
mysql> select host,user from user;

--這裏就可以使用遠程連接測試了;

技術分享圖片

10. Mysql操作命令

--退出mysql命令窗口

#exit

--查看mysql狀態

#service mysql status

--停止mysql

#service mysql stop

--啟動mysql

#service mysql start

二、Mysql主從復制的搭建

環境準備:

首先把前面安裝好mysql的虛擬機克隆一個作為mysql的從節點,克隆方法參照我的文章:學習Mysql過程中拓展的其他技術棧:設置linux虛擬機的固定ip和克隆linux虛擬機

主庫所在服務器IP地址為192.168.168.130,從庫所在服務器IP地址為192.168.168.131

1. MySql主從復制原理

mysql 主從復制原理:

1). master 將操作記錄到二進制日誌(binary log)中;

2). slave IO 線程 將master的binary log events讀寫到它的中繼日誌(relay log);

3). slave SQL線程讀取中繼日誌,將重做記錄數據到數據庫中。

技術分享圖片

MySQL的主從同步是一個很成熟的架構,優點為:

1) 在從服務器可以執行查詢工作(即我們常說的讀功能),降低主服務器壓力;

2) 在從主服務器進行備份,避免備份期間影響主服務器服務;

3) 當主服務器出現問題時,可以切換到從服務器。

2. 主庫192.168.168.130設置

修改主庫my.cnf,主要是設置個不一樣的server-id和log-bin,紅色部分為新增部分。

vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
#socket=/var/lib/mysql/mysql.sock
#user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-bin=mysql-bin #需要啟用二進制日誌
server-id=1 # 用於標識不同的數據庫服務器
binlog-ignore-db=information_schema #忽略記錄二進制日誌的數據庫
binlog-ignore-db=cluster #忽略記錄二進制日誌的數據庫
binlog-ignore-db=mysql #忽略記錄二進制日誌的數據庫

重新啟動主庫生效

service mysql restart

技術分享圖片

登錄主庫:

mysql -hlocalhost -uroot -p

技術分享圖片

賦予從庫權限帳號:

grant all privileges on *.* to ‘用戶名‘@‘%‘ identified by ‘密碼‘;

本文建立的賬戶名稱為root,密碼為123456

技術分享圖片

查看是否創建用戶成功:

select user,host from mysql.user;

技術分享圖片

顯示主庫信息,記錄File和Position,從庫設置將會用到:

show master status;

技術分享圖片

3. 從庫192.168.168.131設置

修改從庫配置文件/etc/my.cnf

vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
#socket=/var/lib/mysql/mysql.sock
#user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
#symbolic-links=0
log-bin=mysql-bin #需要啟用二進制日誌
server-id=2 #用於標識不同的數據庫服務器
binlog-ignore-db=information_schema #忽略記錄二進制日誌的數據庫
binlog-ignore-db=cluster #忽略記錄二進制日誌的數據庫
binlog-ignore-db=mysql #忽略記錄二進制日誌的數據庫
replicate-do-db=test #指定復制的數據庫
replicate-ignore-db=mysql #不復制的數據庫
#log-slave-updates #該從庫是否寫入二進制日誌,如果需要成為多主則可啟用。只讀可以不需要
#slave-skip-errors=all
slave-net-timeout=60

重新啟動從庫生效

service mysql restart

技術分享圖片

登錄從庫:

mysql -u root -p

技術分享圖片

停止從庫:

stop slave;

技術分享圖片

連接MASTER ,MASTER_LOG_FILE為主庫的File,MASTER_LOG_POS為主庫的Position:

 change master to master_host=‘192.168.152.130‘,master_user=‘root‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000002‘, master_log_pos=434;

技術分享圖片

說明:

上述第命令語句中的master_log_file=‘mysql-bin.000002‘, master_log_pos=434;對應為前面在主庫中執行的show master status;結果。

啟動從庫服務:

start slave;

技術分享圖片

4. 測試主從復制是否生效

在主庫服務器上新建一個數據庫test,然後在裏面新建一張表

create database test; 
use test;
CREATE TABLE `myTest` (

     `id` INT( 5 ) UNSIGNED NOT NULL AUTO_INCREMENT ,

     `username` VARCHAR( 20 ) NOT NULL ,

     `password` CHAR( 32 ) NOT NULL ,

     `last_update` DATETIME NOT NULL ,

     `number` FLOAT( 10 ) NOT NULL ,

     `content` TEXT NOT NULL ,

     PRIMARY KEY ( `id` )

     ) ENGINE = MYISAM ;

技術分享圖片

技術分享圖片

在從庫查看主庫新建的表是否存在:

技術分享圖片

可以看出從庫與主庫中信息一致,主從配置成功。為了更進一步驗證在從庫上輸入show slave status\G

技術分享圖片

Slave_IO_Running: Yes(網絡正常);

Slave_SQL_Running: Yes(表結構正常)

進一步驗證了以上過程的正確性。

參考文章:

1. centos6下安裝mysql:https://www.cnblogs.com/jr1260/p/6590232.html

2. CentOS 6.5 下MySql主從、主主配置:https://www.cnblogs.com/whutxldwhj/p/5970540.html

Mysql系列三:Centos6下安裝Mysql和Mysql主從復制的搭建