基礎資訊
主: 192.168.0.1 root pwd1
從: 192.168.0.2 root pwd2
備份
複製 兩臺伺服器的/etc/mysql/mysql.conf.d/mysqld.cnf 到 /etc/mysql/mysql.conf.d/mysqld.cnf.bak 便於資料恢復
主伺服器配置
# bind-address = 127.0.0.1
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
註釋掉bind-address到127.0.0.1,允許遠端連線,開啟server-id和log二進位制檔案的註釋
mysql> show master status;
獲取mysql-bin的file資訊和position資訊 例如: mysql-bin.000001 9937
grant replication slave on *.* to 'repl'@'192.168.0.2' identified by 'replpwd';
建立從庫的登入使用者,並且授予slave許可權
從伺服器配置
server-id = 2
replicate-do-db=buildings
開啟server-id的註釋,手動修改不同於主伺服器
我要配置的是單資料庫的複製,所以我配置了一個我需要的 replicate-do-db
change master to master_host='192.168.0.1', master_user='repl', master_password='replpwd', master_log_file='mysql-bin.000001', master_log_pos=9937;
mysql> show slave status \G; Slave_IO_Running 和 Slave_SQL_Running 值 都為 Yes 說明就成功了
注意,配置中,可以設定只複製哪些庫,哪些表,也可以設定忽略哪些庫和哪些表,但是 replicate-do-db和replicate-ignore-db只能存在這一種,否則不會生效
常用命令
mysql> stop slave; // 停止複製
mysql> reset slave; // 重置複製
mysql> start slave; // 開啟複製
mysql> show master status; // 顯示主庫狀態
mysql> show slave status\G // 顯示從庫狀態
本作品採用《CC 協議》,轉載必須註明作者和本文連結