作者:李建生
歸檔:配置筆記
2020/01/02
1、服務(wù)器環(huán)境
主機A:10.5.11.50
主機B:10.5.11.51
2瞎颗、配置
因操作系統(tǒng)的差別此配置文件可能有點差別
主機A上,vim /etc/my.cnf,添加:
[mysqld]
log-bin=mysql-bin
server-id=1 #服務(wù)id要和B不同
binlog_do_db=db1 #要同步的數(shù)據(jù)庫 可以添加多個
主機B上杭煎,vim /etc/my.cnf,添加:
[mysqld]
log-bin=mysql-bin
server-id=2 #服務(wù)id要和A不同
binlog_do_db=db1 #要同步的數(shù)據(jù)庫 可以添加多個
3卒落、mysql數(shù)據(jù)庫執(zhí)行
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 447 | db1 | |
+------------------+----------+--------------+------------------+
#主機51
CHANGE MASTER TO
MASTER_HOST = '10.5.11.50', #另一臺機器的地址
MASTER_PORT = 3306, #另一臺機器的端口
MASTER_USER = '帳號',#另一臺機器上第一步分配的用戶名
MASTER_PASSWORD = '數(shù)據(jù)庫密碼', #另一臺機器上第一步分配的密碼
MASTER_LOG_FILE = 'mysql-bin.000001',#另一臺機器上執(zhí)行SHOW MASTER STATUS得到的文件名
MASTER_LOG_POS = 154; #另一臺機器上執(zhí)行SHOW MASTER STATUS得到的偏移量
在A上開啟binlog,創(chuàng)建復(fù)制帳號
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 帳號@'%' IDENTIFIED BY '密碼';
#主機 50
CHANGE MASTER TO
MASTER_HOST = '10.5.11.51', #另一臺機器的地址
MASTER_PORT = 3306, #另一臺機器的端口
MASTER_USER = '帳號',#另一臺機器上第一步分配的用戶名
MASTER_PASSWORD = '密碼', #另一臺機器上第一步分配的密碼
MASTER_LOG_FILE = 'mysql-bin.000002',#另一臺機器上執(zhí)行SHOW MASTER STATUS得到的文件名
MASTER_LOG_POS = 154; #另一臺機器上執(zhí)行SHOW MASTER STATUS得到的偏移量
在B上開啟binlog,創(chuàng)建復(fù)制帳號
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO 帳號@'%' IDENTIFIED BY '密碼';
4羡铲、開啟同步
在A上 開啟同步
mysql>start slave;
在B上 開啟同步
mysql>start slave;
在A上執(zhí)行查看同步狀態(tài)
mysql> show slave status\G
*************************** 1. row ***************************
? Slave_IO_State: Waiting for master to send event
? Master_Host: 192.168.1.202
? Master_User: user1
? Master_Port: 3306
? Connect_Retry: 5
? Master_Log_File: mysql-bin.000008
? Read_Master_Log_Pos: 106
? Relay_Log_File: mysqld-relay-bin.000001
? Relay_Log_Pos: 251
? Relay_Master_Log_File: mysql-bin.000008
? Slave_IO_Running: Yes
? Slave_SQL_Running: Yes
? Replicate_Do_DB:
? Replicate_Ignore_DB:
? Replicate_Do_Table:
? Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
? Last_Errno: 0
? Last_Error:
? Skip_Counter: 0
? Exec_Master_Log_Pos: 106
? Relay_Log_Space: 552
? Until_Condition: None
? Until_Log_File:
? Until_Log_Pos: 0
? Master_SSL_Allowed: No
? Master_SSL_CA_File:
? Master_SSL_CA_Path:
? Master_SSL_Cert:
? Master_SSL_Cipher:
? Master_SSL_Key:
? Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
? Last_IO_Errno: 0
? Last_IO_Error:
? Last_SQL_Errno: 0
? Last_SQL_Error:
A中的Slave_IO_Running 和 Slave_SQL_Running兩個值都是YES,說明配置成功了儡毕。
B的配置就不貼了也切,也是配置成功的。
如果主從不同步 重啟服務(wù) 然后進入mysql命令行執(zhí)行下邊命令 執(zhí)行完成之后 執(zhí)行 show slave status\G 查看狀態(tài)
stop slave;
set global sql_slave_skip_counter=1;
start slave;
CHANGE MASTER TO
MASTER_HOST = '10.5.11.50',
MASTER_PORT = 3306,
MASTER_USER = 'root',
MASTER_PASSWORD = 'password',
MASTER_LOG_FILE = 'mysql-bin.000005',
MASTER_LOG_POS = 62427731;
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO root@'%' IDENTIFIED BY 'password';