四、MySQL互为主从配置

时间:2022-09-21 23:35:33

本章节以主机A 192.169.101.90,主机B 192.168.40.110为例进行讲解。

1  基本条件

1、数据库版本必须保持一致 

2、初始化时数据库保持一致。

3、主机A生成奇数ID主机B生成偶数ID

2  安装MySQL数据库

本节内容参见 http://blog.csdn.net/ldy1016/article/details/49227247

3  主机A配置

主机IP192.168.101.90

3.1  修改my.cnf配置文件

执行命令:vi /etc/my.cnf后按i键进入编辑模式,在最后添加如下内容:

log-bin=mysql-bin//开启二进制日志

server-id=90//2232–1之间的一个正整数值,唯一,默认是1,建议使用ip的最后一段

auto_increment_offset=1//自增id起始值为1

auto_increment_increment=2//自增基数为2,保证id为奇数

skip-slave-start//手动启动同步服务,避免突然宕机导致的数据日志不同步

log-slave-updates //互为主从需要加入这一行

 四、MySQL互为主从配置

修改完成后按esc键,然后按输入wq保存并退出,注意也是要输入的。

修改完成之后执行命令service mysqld restart重启mysql数据库

 四、MySQL互为主从配置


3.2  给主机B赋予mysql权限

执行命令:mysql -u用户名-p密码登录mysql数据库

执行mysql命令GRANT all ON *.* to ‘ldy’@192.168.40.110 identified by ‘123456’;给主机B赋予权限,这里@前面的ldy是登录名,最后面的123456是登录密码。


3.3  初始化bin-log日志

执行mysql命令reset master;清空所有的bin-log日志,然后执行mysql命令show master status;查看最新的bin日志。

 四、MySQL互为主从配置

上图中的mysql-bin.000001就是最新的日志文件名称,Positionbin日志结束的位置,这两个值会在主机B中使用。

到此主机A配置完毕,切记为了保持主从的一致性,先不要操作主机A mysql数据库,待主机B配置完成且设置同步后才可以进行操作。


4  主机B配置

从机IP192.168.40.110

4.1  修改my.cnf配置文件

执行命令:vi /etc/my.cnf后按i键进入编辑模式,在最后添加如下内容:

log-bin=mysql-bin//开启二进制日志

server-id=110//2232–1之间的一个正整数值,唯一,默认是1,建议使用ip的最后一段

auto_increment_offset=2//自增id起始值为2

auto_increment_increment=2//自增基数为2,保证id为偶数

skip-slave-start//手动启动同步服务,避免突然宕机导致的数据日志不同步

log-slave-updates //互为主从需要加入这一行

 四、MySQL互为主从配置

修改完成后按esc键,然后按输入wq保存并退出,注意也是要输入的。

修改完成之后执行命令service mysqld restart重启mysql数据库

 四、MySQL互为主从配置


4.2  给主机A赋予mysql权限

执行命令:mysql -u用户名-p密码 登录mysql数据库

执行mysql命令GRANT all ON *.* to‘ldy’@192.168.101.90 identified by ‘123456’;给主机A赋予权限,这里@前面的ldy是登录名,最后面的123456是登录密码。


4.3  初始化bin-log日志

执行mysql命令reset master;清空所有的bin-log日志,然后执行mysql命令show master status;查看最新的bin日志。

 四、MySQL互为主从配置

上图中的mysql-bin.000001就是最新的日志文件名称,Positionbin日志结束的位置,这两个值会在主机A中使用。

到此主机B配置完毕,切记为了保持主从的一致性,先不要操作主机A mysql数据库,待设置同步后才可以进行操作。


5  同步配置

5.1  主机A设置同步

在主机B执行命令:mysql -u用户名-p密码 登录mysql数据库

依次执行mysql命令

change master to master_host='192.168.40.110',master_user='ldy',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;//配置同步

这里的master_host是指主机Bip地址,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机Bbin-log日志,master_log_pos是从bin-log日志开始同步的位置。


start slave;//开启同步

 四、MySQL互为主从配置

执行mysql命令show slave status\G;查看同步设置是否成功

 四、MySQL互为主从配置

上图中Slave_IO_RunningSlave_SQL_Running的值均为Yes表示同步设置成功。


5.2  主机B设置同步

在主机B执行命令:mysql -u用户名 -p密码 登录mysql数据库

依次执行mysql命令

change master to master_host='192.168.101.90',master_user='ldy',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;//配置同步

这里的master_host是指主机Aip地址,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机Abin-log日志,master_log_pos是从bin-log日志开始同步的位置。


start slave;//开启同步

 四、MySQL互为主从配置

执行mysql命令show slave status\G;查看同步设置是否成功

 四、MySQL互为主从配置

上图中Slave_IO_RunningSlave_SQL_Running的值均为Yes表示同步设置成功。

到此互为主从配置结束,可以操作主机A数据库或者主机B数据库查看效果了!