1、两台机器上都建立用户,并赋予复制权限
GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO mysql_backup@'%' IDENTIFIED BY '123456';
如果两个mysql版本不一样 在高版本配置中添加 binlog_checksum=none #不检测日志文件格式
修改配置文件
MASTER1:
[mysqld]
# for repl
server-id = 1
log-bin = mysql-bin
auto-increment-increment= 2 # 应设为整个结构中服务器的总数
auto-increment-offset = 1 # 设定数据库中自动增长的起点,避免两台服务器数据同步时出现主键冲突
MASTER2:
[mysqld]
# for repl
server-id = 2
log-bin = mysql-bin
auto-increment-increment= 2
auto-increment-offset = 2
配置主库
show master status 可以查询 master_log_file master_log_pos
master1上指定master2为主:、
stop slave 停止slave
连接连另一个mysql
CHANGE MASTER TO master_host = '192.168.1.201',
master_user = 'mysql_backup',
master_password = '123456',
master_log_file = 'mysql-bin.000001',
master_log_pos = 106;
master_prot='另一个mysql的端口号';
start slave 开启slave
master2上指定master1为主:
stop slave 停止slave
连接连另一个mysql
CHANGE MASTER TO master_host = '192.168.1.200',
master_user = 'mysql_backup',
master_password = '123456',
master_log_file = 'mysql-bin.000001',
master_log_pos = 106;
master_prot='另一个mysql的端口号';
start slave 开启slave
show slave status 查看连个mysql的slave状态 如果 io线程 sql线程都为yes 即成功
测试主主复制
启动两个服务,在任一mysql上进行操作,在另一mysql上是否进行过同样的操作
MySQL的主主复制实际上就是双向的主从复制。