主庫:mysql
- 修改配置文件sql
'binlog-do-db = test' 僅記錄'test'庫,用來作數據同步。 'binlog-ignore-db' 僅不記錄'mysql',其餘庫數據均可以同步。 數據庫同步規則表中互有衝突,建議僅使用一種規則配置多行數據庫
vim /etc/mysqlvim
[mysqld] server-id = 10 log-bin=mysql-bin binlog-do-db = test binlog-ignore-db = mysql
- 重啓mysql進程服務器
systemctl restart mysqld
- 建立同步賬號rest
用戶名:slave_user 賬號可用範圍:10.10.10.% 密碼:123456code
mysql -uroot -p -e "GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO 'slave_user'@'10.10.10.%' IDENTIFIED BY '123456';"
- 檢查服務器配置及運行狀態server
記錄'File'以及'Position'的值,從庫配置同步節點需用。進程
mysql -uroot -p -e "show variables like 'server_id'" mysql -uroot -p -e "show master status"
從庫:ip
- 修改配置文件
每一臺主從服務器的'server-id'都不能夠重複 'replicate-do-db = test' 僅同步'test'庫 'replicate-ignore-db = mysql' 僅步同步'mysql'庫 'replicate-wild-do-table = test.%' 僅同步'test'庫中全部表(如需指定表,將通配符'%'更換成表名稱)。 'replicate-wild-ignore-table = mysql.%' 僅不一樣步'mysql'庫中全部表(如需指定表,將通配符'%'更換成表名稱)。 'slave-skip-errors = all' 同步過程當中,忽略全部錯誤。 數據庫同步規則表中互有衝突,建議僅使用一種規則配置多行
vim /etc/mysql
[mysqld] server-id = 11 log-bin = mysql-bin replicate-do-db = test replicate-ignore-db = mysql replicate-wild-do-table = test.% replicate-wild-ignore-table = mysql.% slave-skip-errors = all
- 重啓mysql進程
systemctl restart mysqld
- 建立從庫與主庫的同步關係
mysql -uroot -p > stop slave ; > change master to master_host='10.10.10.10',master_port=3306,master_user='slave_user',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=154; > start slave ;
- 檢查從庫是否同步成功
'Slave_IO_Running: Yes' (負責與主庫同步IO通訊) 'Slave_SQL_Running: Yes' (負責自身slave mysql進程)
mysql -uroot -p -e "show slave status \G"