一、系统环境
master为win10 64位 安装包安装。
slave为ubuntu 16.04 64位 deb安装。
MySQL为5.7.17 64位 注意:mysql版本需一致。
二、配置Master
1.确保主从服务器安装了安装了相同版本的mysql。主服务器的ip是211.87.234.1*,从服务器ip是211.87.234.4*。
2.修改主服务器配置文件my.ini,开启BINLOG,并设置mysql的server-id。需要重启服务器后才会生效。my.ini配置如下:
server-id=1
log-bin=E:\MysqlData\log-bin
max_binlog_size = 600M
3.登陆主服务器,设置一个复制使用的账户,并授予REPLICATION SLAVE权限。这个账号相当于从服务器的一把钥匙,通过这个钥匙从服务器进行备份。这里创建一个复制用户hailin:
grant replication slave on *.* to 'hailin'@'%' identified by '123456';
三、备份数据
(假如是你完全新安装mysql主从服务器,这个一步就不需要。因为新安装的master和slave有相同的数据)
1.在主服务器上,设置读锁定有效,这个操作为了获得一致性的快照。并且确保在全部设置操作结束前,禁止在Master和slave服务器中进行写操作。
mysql> flush tables with read locak;
2.查看主服务器二进制日志名和偏移量
show master status \G;
2.使用mysqldump将数据库所有信息导出到all.sql中。
mysqldump -u root -p --all-databases > all.sql
登陆从数据库导入all.sql数据。
mysql> source ./all.sql
四、配置从数据库
1.编辑从服务器的配置文件/etc/my.cnf,需重启mysql数据库服务:
server_id是必须的,而且唯一。slave没有必要开启二进制日志,但是在一些情况下,必须设置,例如,如果slave为其它slave的master,必须设置bin_log。relay_log配置中继日志。log-slave-updates参数配置从服务器的更新是否写入二进制日志,默认不打开,如果这个slave为其它slave的master,那么要开启这个选项。
有些人开启了slave的二进制日志,却没有设置log_slave_updates,然后查看slave的数据是否改变,这是一种错误的配置。
2.在从服务器上指定master,启动slave线程:
mysql> stop slave;
mysql> CHANGE MASTER TO MASTER_HOST='211.87.234.1*',
-> MASTER_USER='hailin',
-> MASTER_PASSWORD='123456',
-> MASTER_LOG_FILE='log-bin.000001',
-> MASTER_LOG_POS=154;
mysql> start slave;
3.在从服务器上执行show slave status\G 查询从服务器状态。
五、制定复制的数据库或表
mysql可以指定复制到从数据库上的数据库或表。replicate-do-db,replicate-ignore-db,replicate-do-table,replicate-ignore-table。如果有多个数据库,可重复写replicate-do-db。