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));

成功!!!