實戰MYSQL 8.0.12 主主復制配置過程
搭建環境:
Server name | IP |
---|---|
mysql1 | 192.168.200.1 |
mysql2 | 192.168.200.2 |
服務器版本:CentOS Linux release 7.5.1804 (Core)
MYSQL版本:8.0.12 # 采用源碼安裝方式, 此過程略,或者參考 http://blog.51cto.com/snowlai/2140451
由於MYSQL采用的是源碼安裝方式,沒有生成 /etc/my.cnf 文件,需要手動創建,創建內容如下:
vim /etc/my.cnf # mysql1裏的內容,mysql2的內容區別是server-id = 2 就可以,其它一樣;
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
server-id = 1
log-bin=mysql-bin
relay-log = mysql-relay-bin
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
symbolic-links=0
log-error=/usr/local/mysql/data/mysql1.err
pid-file=/usr/local/mysql/data/mysql1.pid
進入mysql1的數據庫
mysql -uroot -p #輸入數據庫的密碼
mysql> flush table with read lock;
鎖住數據庫的寫操作後,不要退出這個終端,復制一個終端,將/usr/local/mysql/data 壓縮打包,然後再scp到mysql2上。
tar zcvf data.tar.gz data
scp data.tar.gz root@mysql2:/usr/local/mysql/
然後再mysql2上解壓data.tar.gz, 並刪除 auto.cnf文件
tar zxvf data.tar.gz
rm -rf auto.cnf
都重啟mysqld服務
service mysqld restart
mysql1: MASTER ; mysql2:SLAVE
在mysql1上創建復制用戶(repl_user),並授權
grant replication slave on . to ‘repl_user‘@‘mysql2‘ identified by ‘REPL_PASSWORD‘;
show master status;
並記錄master的輸出:File和Position的值
登錄到mysql2上,設置mysql1為自己的主服務器
change master to master_host=‘mysql1‘,master_user=‘repl_user‘,master_password=‘REPL_PASSWORD‘,master_log_file=‘mysql1上File的值‘,master_log_pos=mysql1上的position值;
start slave;
show slave status \G;
mysql2: MASTER ; mysql1:SLAVE
在mysql2上創建復制用戶(repl_user),並授權
grant replication slave on . to ‘repl_user‘@‘mysql1‘ identified by ‘REPL_PASSWORD‘;
show master status;
並記錄master的輸出:File和Position的值
登錄到mysql1上,設置mysql2為自己的主服務器
change master to master_host=‘mysql2‘,master_user=‘repl_user‘,master_password=‘REPL_PASSWORD‘,master_log_file=‘mysql2上File的值‘,master_log_pos=mysql2上的position值;
start slave;
show slave status \G;
註意事項:
- 兩個數據庫的數據在初始狀態必須保持一致, 這樣才能保證 show master status;的時候輸出的結果才一致;
- show slave status \G; 的時候。 Slave_IO_Running 和 Slave_SQL_Running 的結果為YES;
- 數據庫的配置文件:/etc/my.cnf 中的server-id的值必須不一樣;
- 兩臺服務器中的數據庫版本必須一樣;
實戰MYSQL 8.0.12 主主復制配置過程