主服务器:ip1;
从服务器:ip2;
待同步的数据库:test;
在主服务器上为从服务器建立一个连接帐户,该帐户必须授予REPLICAITON SLAVE
权限。
mysql>grant replication slave on *.* to 'root'@'192.168.197.129' identified by '111'; mysql>flush privileges;
修改主数据的配置文件(/etc/my.cnf), 或window下my.ini
关于只同步其中的几个数据的情况,请添加多行binlog-do-db = xxx
,即[mysqld] server-id = 1 log-bin=mysql-bin binlog-do-db = info_2 ##需要同步的数据库 binlog-do-db = info_3 ##需要同步的数据库 binlog-ignore-db=mysql我测试了下如果是这样写[mysqld] server-id = 1 log-bin=mysql-bin binlog-do-db = info_2,info_3 binlog-ignore-db=mysql虽然最后配置完毕提示的成功,但是运行的时候实际是不能同步的,各位同学需要注意下。
修改完配置文件,重启mysql服务.
mysql>show master status;
修改mysql配置文件 (ubuntu下 /etc/mysql/my.cnf)
[mysqld] server-id=2 log-bin=mysql-bin replicate-do-db=info_2 #需要同步的数据库 replicate-do-db=info_3 #需要同步的数据库 replicate-ignore-db=mysql
重启mysql
然后进入mysql
mysql>stop slave; mysql>change master to master_host='ip1',master_user='root',master_password='111',master_log_file='mysql-bin.000001', master_log_pos=1438;
mysql>start slave;
注意,这里的master_log_file
,master_log_pos
由上面主服务器查出的状态值中确定。前面在主数据操作show master status
得到的结果
mysql>show slave status\G;
一般如下两条都是Yes,表示成功,如果发现数据没有同步,请检查之前的数据是否一致。
Slave_IO_Running: Yes Slave_SQL_Running: Yes
正常情况下,到这里就配置完毕了
3)开始测试
主服务器下:
添加主库info_2,users表数据。
insert into users values(3,'test3','13400000001','2019-09-02 14:12:00');
从库表users,也会添加一条新纪录。