資料庫主從同步配置
阿新 • • 發佈:2021-02-14
1、架構規劃
兩臺主機進行配置,一個放主資料庫,另一個放置從資料庫
192.168.209.129 master
192.168.209.130 slave
2、修改兩個主機的資料庫配置,使用的相同的命令
命令: vi /etc/my.cnf
master主機
binlog:主要作用是用於資料庫的主從複製及資料的增量恢復-----配置形式log-bin-mysql
【mysqld】在這個名稱下,進行配置
server-id=1 log-bin=mysql-bin log-slave-updates slave-skip-errors=all
slave主機
【mysqld】在這個名稱下,進行配置
server-id=2
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
示例
3、重啟資料庫服務
systemctl restart mysqld
4、檢視servier_id是否配置生效
該命令是在資料庫中執行,必須進入資料庫mysql -uroot -proot
SHOW VARIABLES like 'server_id';5、登入master節點執行如下命令
這個存在的主資料庫的主機上,進行檢視
show master status;
6、登入從節點
從節點具有slave主機上,輸入以下命令,找到主節點
change master to
master_host='192.168.209.129',
master_user='root',
master_password='root',
master_log_file='mysql-bin.000002',
master_log_pos=155;
7、開啟從節點
start slave; 開啟
stop slave; 關閉
8、檢視節點開啟狀態
show slave status\G;
**************************
1. row ***************************
Slave_IO_State: Waiting for master to send event Master_Host: 10.15.0.9
Master_User: root
Master_Port: 3306 Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 120
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果輸出IO和sql執行都沒錯,表示配置成功。錯一個都表示失敗。
檢視日誌調整錯誤
cat /var/log/mysqld.log
錯誤祕籍
1、MySQL主從複製,啟動slave時報錯Slave failed to initialize relay log info structure from the repository
slave reset執行候做了這樣幾件事:
a、刪除slave_master_info ,slave_relay_log_info兩個表中資料;
b、刪除所有relay log檔案,並重新建立新的relay log檔案;
c、不會改變gtid_executed 或者 gtid_purged的值
解決
mysql> reset slave;
Query OK, 0 rows affected (0.12 sec)
mysql> start slave;
Query OK, 0 rows affected (0.11 sec)
2、克隆主機,將資料庫的uuid也複製過來了
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解決
a、檢視資料目錄生成的路徑:datadir
cat /etc/my.cnf
b、編輯auto.cnf中內容:vi auto.cnf
刪除uuid