mysql主從複製配置,mysql主從複製教程
mysql主從複製配置,mysql主從複製教程
================================
©Copyright 蕃薯耀 2020-10-27
https://www.cnblogs.com/fanshuyao/
一、修改配置檔案
Linux修改/etc/my.cnf檔案,Windows修改my.ini檔案,下面以Linux為例
主庫配置:
# =====主從複製 主庫 開始===== # 設定需要同步的資料庫 binlog-do-db=rw_slave #遮蔽系統庫同步 binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=test #=====主從複製 主庫 結束=====
從庫配置:
# =====主從複製 從庫 開始===== relay-log=mysql-relay #設定需要同步的資料庫 replicate_do_db=rw_slave #遮蔽系統庫同步 replicate_ignore_db=mysql replicate_ignore_db=information_schema replicate_ignore_db=performance_schema replicate_ignore_db=test #replicate_wild_ignore_table=mysql.% #replicate_wild_ignore_table=information_schema.% #replicate_wild_ignore_table=performance_schema.% #replicate_wild_ignore_table=test.% # =====主從複製 從庫 結束=====
從庫需要注意,server-id預設是1,從庫需要修改成2或者其它的,不能設定成一樣。
二、主從複製配置
1、主庫設定
設定同步的賬號和密碼:都設定成rwuser,然後重新整理許可權
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON*.* TO 'rwuser'@'%' IDENTIFIED BY 'rwuser';
-- 重新整理許可權
FLUSH PRIVILEGES;
確認位點,記錄下檔名以及位點,在從庫設定時需要用到
-- mysql-bin.000004
-- 533
SHOW MASTER STATUS;
2、從庫設定
先停止同步:
STOP SLAVE;
重置從庫(一般可以省略,也可以重置)
解決: Slave failed to initialize relay log info structure from the repository
RESET SLAVE;
配置同步的主庫地址和賬號密碼,以及讀取的檔案和位置(就是上面SHOW MASTER STATUS;的資料)
-- 修改同步的資訊
-- 其中 MASTER_LOG_FILE,MASTER_LOG_POS為SHOW MASTER STATUS;中的file和Position
CHANGE MASTER TO MASTER_HOST='192.168.132.11',MASTER_USER='rwuser',MASTER_PASSWORD='rwuser',MASTER_LOG_FILE='mysql-bin.000004',MASTER_LOG_POS=533;
啟動從庫同步
START SLAVE;
檢視從庫的狀態:
-- slave_io_running,slave_sql_running都為Yes時,表示同步設定成功,如果不為Yes,請檢查error.log排查異常。
SHOW SLAVE STATUS;
如果出現下面的錯誤,就是主、從庫的server-id設定成相同的,修改從庫的server-id,然後重啟mysql(service mysql restart)。
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
可以通過mysql查詢server-id
SHOW VARIABLES LIKE 'server_id';
或者通過命令直接修改:
此處的數值和my.cnf裡設定的一樣就行
SET GLOBAL server_id=12;
需要注意的是:
Linux一般有埠限制,可以開放相應的埠,如3306
================================
©Copyright 蕃薯耀 2020-10-27
https://www.cnblogs.com/fanshuyao/