Mysql互为主从
环境:
系统环境:centos6.5_x64
Mysql-A:172.18.49.10
Mysql-B:172.18.49.2
Mysql安装已经完成。
两台mysql上时间同步:
# ntpdate pool.ntp.org
在A上操作:
# vi /etc/my.cnf
添加:
log-bin=mysql-bin //开启二进制日志
server-id=1 //mysql的id
relay_log=relaylogs
# service mysqld restart
登录mysql,新建同步用户:
# mysql -uroot –p
mysql> grant all on *.* to ‘tongbu‘@‘172.18.49.%‘ identified by ‘123456‘;
mysql> flush privileges;
初始化bin-log日志
mysql> reset master;
查看最新bin-log日志:
mysql> show master status;
图中的mysql-bin.000001就是最新的日志文件名称,Position是bin日志结束的位置,这两个值会在主机B中使用。
主机A配置完毕,切记为了保持主从的一致性,先不要操作主机A mysql数据库,待主机B配置完成且设置同步后才可以进行操作。
主机B配置:
修改配置文件:
# vi /etc/my.cnf
log-bin=mysql-bin
server-id=2
relay_log=relaylogs
# service mysqld restart
增加同步用户:
# mysql -uroot –p
mysql> grant all on *.* to ‘tongbu‘@‘172.18.49.%‘ identified by ‘123456‘;
mysql> flush privileges;
初始化bin-log日志:
mysql> reset master;
查看bin-log日志:
mysql> show master status;
主机B配置完成,现在进行同步配置
同步配置:
在主机A上操作:
mysql> change master to master_host=‘172.18.49.2‘,master_user=‘tongbu‘,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日志开始同步的位置。
开启同步:
mysql> start slave;
查看同步设置是否成功:
在主机B上操作:
mysql> change master to master_host=‘172.18.49.10‘,master_user=‘tongbu‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=120;
mysql> start slave;
mysql> show slave status\G;
则操作完成。
同步测试:
在A主机或者B主机上做都可以。
在A上新建一个数据库
mysql> create database test2;
在B上可以查看到,之后再B上给数据库中插入信息,则在A上也可以查看的到:
mysql> create table users(id int(16),name char(16),sex varchar(64));
成功!!!