Master配置(ip:192.168.1.1):
- 修改master配置文件并重启服务:
[mysqld]
server_id=1
binlog-do-db=m_test
#binlog-ignore-db=test
#replicate-ignore-db=test
log-bin=mysql-bin
binlog_cache_size = 1M
binlog_format=mixed
expire_logs_days=7
- 重启
service mysqld restart
- 在master上建立用于复制的用户
mysql>grant replication slave, replication client on *.* to 'repl'@'192.168.1.2' identified by 'pwd';
- 备份master数据:先锁表,保证数据一致性
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
+—————–+————+—————-+——————–+
|File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+—————–+————+—————-+——————–+
|mysql-bin.000015 | 1273 | | |
+—————–+————+—————-+——————–+
记录文件名和pos号
开始备份数据库
#mysqldump -uroot -p mydb > /tmp/mydb.sql
备份完毕,现在可以解锁数据库表
MySQL> UNLOCK TABLES;
Slave配置(ip:192.168.1.2)
- 修改slave配置文件并重启服务:
[mysqld]
server_id=2
replicate-do-db=m_test
#binlog-ignore-db=test #不记录binlog
#replicate-ignore-db=test #不复制test库的binlog
#log-bin=mysql-bin
#binlog_cache_size = 1M
#binlog_format=mixed
#expire_logs_days=3
- 导入备份数据到slave
#mysql -uroot -p -B mydb </tmp/mydb.sql
- 在slave上同步binlog
mysql>change master to master_host ='192.168.1.1',master_port=3306,master_user='repl',master_password='pwd',master_log_file='mysql-bin.000001',master_log_pos=154; (注:具体值根据备份master时,SHOW MASTER STATUS的值设定)
- slave上开启复制或(stop slave)
mysql> start slave;
- 查看slave状态
mysql> show slave status\G;
注意:
1.指定binlog-do-db为具体数据库时,不支持跨库操作,可考虑replicate_wild_do_table
2.先创建从库