Win10 与 Ubuntu 16.04下 MySQL 5.7.17的主从复制

来源:互联网 发布:金盾42u网络机柜 编辑:程序博客网 时间:2024/06/07 22:46

Win10 与 Ubuntu 16.04下 MySQL 5.7.17的主从复制

一、系统环境

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=1log-bin=E:\MysqlData\log-binmax_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。

0 0
原创粉丝点击