尝鲜mysql5.7.10以及多主一从

因数据统计的需要,要将多台服务器上的数据汇总到一台,mysql5.7支持多源同步,也就是多主一从设置。具体配置如下:

安装mysql5.7.10就不详述了,和5.6过程没什么区别,但是千万不要直接在5.6上升级,系统库里的很多表结构都不一样了,包括user表以及几个主从表。

主服设置,可以参考之前的文章http://www.hao535.com/archives/642,略,主服唯一的要求是至少5.6版本,原因是从服的5.7和主服通信时要取主服的uuid,之前版本只用serverid就可以了,5.6以下版本是取不到uuid的,所以至少要5.6版本才能和5.7版本做主从。

关键是从服设置,就是5.7.10版本这台,首先配置文件my.cnf

server-id=2 // 不要重复,虽然serverid不重要了,还是要设置
master_info_repository=TABLE// 包括下面的信息,默认是存文件的,多个主库放文件里会有冲突,所以必须要存表里
relay_log_info_repository=TABLE

然后就是在mysql命令行里配置连接主服的参数,这些参数会写入到上面配置文件里指定的表里

change master to master_host=’主服ip’, master_user=’主服同步账号’, master_password=’同步账号密码’, master_log_file=’主服同步bin文件名’, master_log_pos=主服同步bin文件的位置 for channel “一个不重复的名称”;

这里有个很关键的东西for channel “xxx”,这个就是用来设置不同的主服,给每个主服都要命名,接下来启动从服,也要指定这个名称。

启动从服

start slave for channel “xxx”

查看从服状态

show slave status for channel “xxx”

配置多个主服,只要重复执行change master to 就可以了