在配置之前,首先要保证主库与从库的MySQL版本是一致的,我们这里建议使用MySQL 5.6.x 。

mysql-master-slave

修改主库与从库的配置文件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;