在配置之前,首先要保证主库与从库的MySQL版本是一致的,我们这里建议使用MySQL 5.6.x 。
修改主库与从库的配置文件my.cnf,修改其中的server_id,一般的我们配置server_id的值为当前服务器IP地址的最后一段,用于区分不同的数据库服务。
在主数据库中,打开服务器的binlog配置,使其记录binlog。
修改my.cnf配置中的binlog-do-db和binglog-ignore-db,以设置同步或忽略哪些数据库。
my.cnf内容片断如下:
server_id = 1 binlog-do-db = dodbname binlog-ignore-db = dbignorename log-bin = mysql-bin
首先设置主库状态为只读(read-only):
mysql>set global read_only = 1;
查看数据库的读写状态:
mysql>show variables like '%read_only%';
查看主数据库的master配置:
mysql>show master status; +------------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +------------------+----------+--------------+------------------+ | mysql-bin.000001 | 528 | dodbname | dbignorename | +------------------+----------+--------------+------------------+
在从库中,为从库同步账户slave授权:
mysql>GRANT REPLICATION SLAVE ON *.* to 'slave'@'%' identified by 'slavepassword';
配置从库的主数据库源:
mysql>change master to master_host='192.168.1.2',master_port=3306,master_user='slave',master_password='slavepassword',master_log_file='mysql-bin.000001',master_log_pos=528;
在从库启动从库同步服务:
mysql>start slave;
最后设置主库状态为可读写(read-write):
mysql>set global read_only = 0;
附关闭从库同步服务的命令:
mysql>stop slave;