本章节以主机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配置
主机IP:192.168.101.90
3.1 修改my.cnf配置文件
执行命令:vi /etc/my.cnf后按i键进入编辑模式,在最后添加如下内容:
log-bin=mysql-bin//开启二进制日志
server-id=90//2到232–1之间的一个正整数值,唯一,默认是1,建议使用ip的最后一段
auto_increment_offset=1//自增id起始值为1
auto_increment_increment=2//自增基数为2,保证id为奇数
skip-slave-start//手动启动同步服务,避免突然宕机导致的数据日志不同步
log-slave-updates //互为主从需要加入这一行
修改完成后按esc键,然后按输入:wq保存并退出,注意:也是要输入的。
修改完成之后执行命令service mysqld restart重启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-bin.000001就是最新的日志文件名称,Position是bin日志结束的位置,这两个值会在主机B中使用。
到此主机A配置完毕,切记为了保持主从的一致性,先不要操作主机A mysql数据库,待主机B配置完成且设置同步后才可以进行操作。
4 主机B配置
从机IP:192.168.40.110
4.1 修改my.cnf配置文件
执行命令:vi /etc/my.cnf后按i键进入编辑模式,在最后添加如下内容:
log-bin=mysql-bin//开启二进制日志
server-id=110//2到232–1之间的一个正整数值,唯一,默认是1,建议使用ip的最后一段
auto_increment_offset=2//自增id起始值为2
auto_increment_increment=2//自增基数为2,保证id为偶数
skip-slave-start//手动启动同步服务,避免突然宕机导致的数据日志不同步
log-slave-updates //互为主从需要加入这一行
修改完成后按esc键,然后按输入:wq保存并退出,注意:也是要输入的。
修改完成之后执行命令service mysqld restart重启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-bin.000001就是最新的日志文件名称,Position是bin日志结束的位置,这两个值会在主机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是指主机B的ip地址,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机B的bin-log日志,master_log_pos是从bin-log日志开始同步的位置。
start slave;//开启同步
执行mysql命令show slave status\G;查看同步设置是否成功
上图中Slave_IO_Running和Slave_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是指主机A的ip地址,master_uesr是执行同步操作的用户名,master_password是执行同步的用户密码,master_log_file是主机A的bin-log日志,master_log_pos是从bin-log日志开始同步的位置。
start slave;//开启同步
执行mysql命令show slave status\G;查看同步设置是否成功
上图中Slave_IO_Running和Slave_SQL_Running的值均为Yes表示同步设置成功。
到此互为主从配置结束,可以操作主机A数据库或者主机B数据库查看效果了!