MySQL复制技术之主主复制
1) 初始化数据库(master1,master2)
Master1:vm1:192.168.12.181、mysqld2
Master2:vm2:192.168.12.182、mysqld2
2) 配置my.cnf
Master1:
[mysqld2]
port=3307
basedir=/usr
datadir=/data/mysql/data2
socket=/var/lib/mysql/mysql2.sock
pid-file=/var/run/mysqld/mysqld2.pid
log-error=/data/mysql/log2/mysqld2.log
user=mysql
server_id=5
log_bin=/data/mysql/log2/vm2-bin.log
relay-log=/data/mysql/log2/vm2-slave-bin.log
Master2:
[mysqld2]
port=3307
basedir=/usr
datadir=/data/mysql/data2
socket=/var/lib/mysql/mysql2.sock
pid-file=/var/run/mysqld/mysqld2.pid
log-error=/data/mysql/log2/mysqld2.log
user=mysql
server_id=6
log_bin=/data/mysql/log2/vm2-bin.log
relay-log=/data/mysql/log2/vm2-slave-bin.log
log_slave_updates=on
#slave-skip-errors=all
启动mysql
常用参数:
binlog-do-db=db_rocky #需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
binlog-ignore-db=mysql #不需要记录进制日志的数据库.如果有多个数据库可用逗号分隔,或者使用多个binlog-do-db选项
replicate-do-db=db_rocky #需要进行同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-do-db选项
replicate-ignore-db=mysql,information_schema #不需要同步的数据库.如果有多个数据库可用逗号分隔,或者使用多个replicate-ignore-db选项
#同步参数:
#保证slave挂在任何一台master上都会接收到另一个master的写入信息
log_bin=/data/mysql/log2/vm2-bin.log
relay-log=/data/mysql/log2/vm2-slave-bin.log
log_slave_updates=on
slave-skip-errors=all #过滤掉一些没啥大问题的错误
Master1:
Mysql>grant replication slave on *.* to repuser1 identified by 'aa12AA,.';
Master2:
Mysql>grant replication slave on *.* to repuser2 identified by 'aa12AA,.';
4) 连接master1与master2
master1:
master_host = '192.168.12.182',
master_port = 3307,
master_user = 'repuser2',
master_password = 'aa12AA,.';
(master_log_file ='vm2-bin.000009', master_log_pos = 1;)
Mysql>start slave;
master2:
mysql>change master to
master_host = '192.168.12.181',
master_port = 3307,
master_user = 'repuser1',
master_password = 'aa12AA,.';
(master_log_file ='vm2-bin.000009', master_log_pos = 1;)
Mysql>start slave;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16976507/viewspace-2132953/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16976507/viewspace-2132953/