主从同步设置
MySQL的主从同步设置是将主机设定为可读写的服务器,将从 机设定为只读的服务器,从机的数据将从主机中进行同步。 下面以设置“10.10.10.35”(master)与“10.10.10.36”(slave)的主 从同步为例进行说明。
1.主机设置 使用如下指令修改服务器名称:
将文件内容改为“mysql-35”。 使用如下指令修改数据库服务器的配置:
在[mysqld]下面增加以下配置项:
设置完成后,保存配置,使用如下指令重启数据库服务器:
然后用root用户登录服务器,使用如下指令创建一个同步用户并 授权:
其中“user36”为用户名,“user123456”为用户密码。 使用如下指令更新权限,让上面设置立即生效:
使用如下指令查看主机状态:
查看结果如下所示:
其中,“File”为二进制日志文件名称,“Position”为日志保存位置 的偏移量,在后面的从机同步设置中将使用到这两个参数。
从机设置
下面以“10.10.10.36”这台服务器的从机设置为例进行说明。 使用如下指令修改服务器名称:
将内容改为“mysql-36”。 使用如下指令修改数据库配置:
在[mysqld]下面增加以下配置项:
保存配置,重启数据库服务器。然后,用root用户登录数据库, 使用如下所示的同步配置:
其中,通过“master_log_file”设置了主机的日志文件,通 过“master_log_pos”设置了主机的日志存储位置偏移量。这两个参数 必须根据当前主机的状态进行配置。 使用如下指令启动从机,即可开始进行数据同步:
使用如下指令可以查看从机的同步状态:
查看结果显示类似于如下所示:
在上面结果中,如 果“Slave_IO_Running”和“Slave_SQL_Running”都显示为“Yes”,即表 示同步成功。 服务器“10.10.10.37”的从机设置可以参照上面方法实现。
主主同步设置:
将两个集群分组的主机互相进行主从同步设置就可以实现主主同 步。
首先,参照上节的方法,在集群分组2之中实现主从同步设置。 其中,集群分组2的主机“10.10.10.25”的数据库配置与分组1的数 据库配置相似,只是主键的配置为了避免冲突有些不一样,即使用双 数作为主键,如下所示:
集群分组2的主从设置完成之后。下面对两个分组的主机实现主 主设置,首先实现分组1的主机(10.10.10.35)与分组2的主机 (10.10.10.25)的主从设置。
1.分组1的主机配置 在“10.10.10.35”主机上创建同步用户并授权:
更新权限:
查看主机状态:
记下查看结果中的日志文件名称和存储位置偏移量。
2.分组2的从机配置
使用如下同步配置:
其中,日志文件名称和存储位置偏移量按上面主机查询的结果填 写。
启动从机进行同步:
查看同步状态:
在查询结果中如果包含如下所示的两行信息即表示同步设置成 功:
现在,反过来以“10.10.10.25”为主机,以“10.10.10.35”为从机, 再来设置主从同步,这可参照上面的方法实现。互为主从设置完成之 后,就实现了主主同步的设置。
为了对上面的同步设置进行验证,可以在各个主机上创建数据 库,再执行一些插入或删除数据的操作,然后在各个从机中查看结 果。如果各种操作都能同步成功,即可宣告主主同步和主从同步设置 大功告成。 如果出现同步失败的情况,可以先停止失败的从机,视情况更改 日志文件名称和偏移量,然后再启动从机继续进行同步。 停止从机可以使用如下的指令:
最后需要说明一点的是,在生产实际中,推荐使用UUID来作为数据库的主键,这样可避免主键冲突的情况发生,而且也方便在集群 中创建更多的分组。