注:环境为主库单实例,从库多实例。
主库开logbin,确认server id 和从库不同
[root@db backup]# egrep "log-bin|server-id" /etc/my.cnf
server-id = 1
log-bin=mysql-bin
[root@db-2 backup]# egrep "log-bin|server-id" /data/3306/my.cnf
#log-bin = /data/3306/mysql-bin
server-id = 06
2.主库建用户用于从库访问
[root@db backup]# mysql -uroot -p111111 -e"grant replication slave on *.* to 'rep'@'%' identified by '111111';flush privileges;"
[root@db backup]# mysql -uroot -p111111 -e"show grants for rep"
+----------------------------------------------------------------------------------------------------------------+
| Grants for rep@% |
+----------------------------------------------------------------------------------------------------------------+
| GRANT REPLICATION SLAVE ON *.* TO 'rep'@'%' IDENTIFIED BY PASSWORD '*FD571203974BA9AFE270FE62151AE967ECA5E0AA' |
3.主库备份
mysqldump -uroot -p111111 -A -B --events -master-data=1 -x > /backup/db.sql
#备注:官方建议:锁住表查看(flush table with read lock:show master status;show master logs;)--->备份--->解锁(unlock tables):
4.从库导入(已将数据scp过来)
mysql -uroot -p111111 -S /data/3306/mysql.sock /db.sql
5.从库change master,start slave。
change master to master_host='192.168.199.21', master_port=3306, master_user='rep', master_password='111111',master_log_file='mysql-bin.000025',master_log_pos=107; start slave; show slave status \G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.199.21 Master_User: rep Master_Port: 3306 Connect_Retry: 60 Master_Log_File: mysql-bin.000025 Read_Master_Log_Pos: 107 Relay_Log_File: relay-bin.000002 Relay_Log_Pos: 253 Relay_Master_Log_File: mysql-bin.000025 Slave_IO_Running: Yes Slave_SQL_Running: Yes .... ERROR: No query specified