简述:
实现Mysql 双master
参考:
http://www.jb51.net/article/38657.htm
http://tianyaono1.blog.163.com/blog/static/39051387200811103036445/
环境:
主机: 192.168.1.100(A)
主机: 192.168.1.150(B)
步骤:
1.
mysql -uroot -p;
进入两台机器的 mysql> 界面
登陆远程的mysql命令行界面
mysql -uroot -psql -h192.168.1.150 -P3306;
分别在A, B两台数据库中打开slave权限
grant replication slave,file on *.* to 'root'@'192.168.1.150' identified by 'sql';
flush privileges;
grant replication slave,file on *.* to 'root'@'192.168.1.100' identified by 'sql';
flush privileges;
操作成功后,
2. 修改配置文件
windows的话就需要在my.ini里面开启二进制日志
100的机子,在ini文件末尾加上
# 双master
user=mysql
log-bin=mysql-bin
server-id=1
binlog-do-db=test_db
binlog-ignore-db=mysql
replicate-do-db=test_db
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
skip-name-resolve
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=1
150的机子,在ini文件末尾加上
user=mysql
log-bin=mysql-bin
server-id=2
binlog-do-db=test_db
binlog-ignore-db=mysql
replicate-do-db=test_db
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
skip-name-resolve
sync_binlog=1
auto_increment_increment=2
auto_increment_offset=2
之后,services.msc中重启mysql的服务
3. 查看修改状态
flush tables with read lock;
show master status;
4. 在各自机器上执行change master to
100的server
change master to
master_host='192.168.1.150',
master_user='root',
master_password='sql',
master_log_file='mysql-bin.000002',
master_log_pos=106;
150的server
change master to
master_host='192.168.1.100',
master_user='root',
master_password='sql',
master_log_file='mysql-bin.000002',
master_log_pos=106;
在两台机器上,开启slave
5. 查看机器的IO进程和slave是否都开启
IO进程,做的是从master把二进制日志同步过来, slave进程做的是在本机执行已经同步到本机的二进制日志,就是复制master的数据操作
show processlist;
100机器上的command打印
之后
unlock tables
6, 验证
在100的机子上创建表
use test_db;
create table test_schema (
id char(36) not null,
name varchar(10),
primary key(id)
);
insert into test_schema (id, name) values('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', 'little a');
之后查看150的机子,顺利同步过去了
在150的做一下验证,再新增一条
insert into test_schema (id, name) values('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb', 'little b');
顺利同步