一、简介
本篇文章主要是写的Ubuntu16.04和window的mysql主从同步,其中主是window,从是Ubuntu,因为我想要实现mysql中间件实现读写分离,为了方便就是用window为主,原理都是一样的。我写过一篇关于window和window的主主复制有兴趣可以参考一下:https://blog.youkuaiyun.com/JavaWeb_Hao/article/details/81486277
准备:windows:10.6.17.223 linux:10.6.17.161 都需要下载安装mysql
window安装mysql:https://blog.youkuaiyun.com/JavaWeb_Hao/article/details/80273639
ubuntu安装mysql:https://blog.youkuaiyun.com/JavaWeb_Hao/article/details/82530877
最好安装 同一个版本,我的是两个5.7
二、步骤
1、配置配置文件
打开win上的mysql的配置文件my.ini,配置以下信息
[mysqld]
server-id=223
binlog-do-db=mytest
binlog-ignore-db=mysql
log-bin=mysql-bin
auto_increment_offset=1
auto_increment_increment=2
打开linux的mysql的配置文件my.cnf,配置以下信息
21 [client]
22 socket=/var/lib/mysql/mysql.sock
23 [mysqld]
24 socket=/var/lib/mysql/mysql.sock
25
26 server-id=161
27 replicate-do-db=mytest
28 replicate-ignore-db=mysql
29 replicate-ignore-db=information_schema
30 replicate-ignore-db=personalsite
31 reolicate-ignore-db=test
2、重启两个mysql服务
重启命令: service mysql restart
3、查看配置是否生效
在windows上面进入到mysql中,执行,show master status;
在window中查看slave状态:show master status;
3、在两台服务器上的mysql中分别创建两个用户
在10.6.17.223上运行
grant replication slave on *.* to slaveuser@10.6.17.161 identified by '123456';
在10.6.17.161上运行
grant replication slave on *.* to slaveuser@10.6.17.223 identified by '123456';
4、在linux上面执行该步骤
mysql> stop slave;
mysql>change master to master_host='10.6.17.223',master_user='slaveuser',master_password='123456',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=154;
mysql> start slave;
mysql> show slave status\G
5、在linux上面的mysql中执行:show slave status;如果显示io线程(Slave_IO_Running)个sql线程(Slave_SQL_Running)都为yes就ok了
三、问题
在实现竹筒同步的时候最容易遇到的问题就是Slave_IO_Running: Connecting。这时候不要着急。潜心研究以后就会避免的。
四、总结
这次实现了windows为主,linux为从的mysql主从复制,感觉比上次的纯粹的两个windows还要麻烦,但是总的来说还是实现了。但是殊途同归,原理是一摸一样的。加油