实战MYSQL 8.0.12 主主复制配置过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实战MYSQL 8.0.12 主主复制配置过程相关的知识,希望对你有一定的参考价值。

实战MYSQL 8.0.12 主主复制配置过程

搭建环境:

Server name IP
mysql1 192.168.200.1
mysql2 192.168.200.2

服务器版本:CentOS Linux release 7.5.1804 (Core)
MYSQL版本:8.0.12 # 采用源码安装方式, 此过程略,或者参考 http://blog.51cto.com/snowlai/2140451

由于MYSQL采用的是源码安装方式,没有生成 /etc/my.cnf 文件,需要手动创建,创建内容如下:

vim /etc/my.cnf # mysql1里的内容,mysql2的内容区别是server-id = 2 就可以,其它一样;

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
server-id = 1
log-bin=mysql-bin
relay-log = mysql-relay-bin
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%
symbolic-links=0
log-error=/usr/local/mysql/data/mysql1.err
pid-file=/usr/local/mysql/data/mysql1.pid

进入mysql1的数据库

mysql -uroot -p #输入数据库的密码
mysql> flush table with read lock;

锁住数据库的写操作后,不要退出这个终端,复制一个终端,将/usr/local/mysql/data 压缩打包,然后再scp到mysql2上。

tar zcvf data.tar.gz data
scp data.tar.gz [email protected]:/usr/local/mysql/

然后再mysql2上解压data.tar.gz, 并删除 auto.cnf文件

tar zxvf data.tar.gz
rm -rf auto.cnf

都重启mysqld服务

service mysqld restart


mysql1: MASTER ; mysql2:SLAVE

在mysql1上创建复制用户(repl_user),并授权

grant replication slave on . to ‘repl_user‘@‘mysql2‘ identified by ‘REPL_PASSWORD‘;
show master status;

并记录master的输出:File和Position的值

登录到mysql2上,设置mysql1为自己的主服务器

change master to master_host=‘mysql1‘,master_user=‘repl_user‘,master_password=‘REPL_PASSWORD‘,master_log_file=‘mysql1上File的值‘,master_log_pos=mysql1上的position值;
start slave;
show slave status G;


mysql2: MASTER ; mysql1:SLAVE
在mysql2上创建复制用户(repl_user),并授权
grant replication slave on . to ‘repl_user‘@‘mysql1‘ identified by ‘REPL_PASSWORD‘;
show master status;

并记录master的输出:File和Position的值

登录到mysql1上,设置mysql2为自己的主服务器

change master to master_host=‘mysql2‘,master_user=‘repl_user‘,master_password=‘REPL_PASSWORD‘,master_log_file=‘mysql2上File的值‘,master_log_pos=mysql2上的position值;
start slave;
show slave status G;


注意事项:

  1. 两个数据库的数据在初始状态必须保持一致, 这样才能保证 show master status;的时候输出的结果才一致;
  2. show slave status G; 的时候。 Slave_IO_Running 和 Slave_SQL_Running 的结果为YES;
  3. 数据库的配置文件:/etc/my.cnf 中的server-id的值必须不一样;
  4. 两台服务器中的数据库版本必须一样;

以上是关于实战MYSQL 8.0.12 主主复制配置过程的主要内容,如果未能解决你的问题,请参考以下文章

安全最重要!MySQL配置主从复制,主主复制

6-MYSQL主从同步(DBA)配置

MySQL数据库——MMM高可用群集配置(实战!)

MySQL主主复制试验

Mysql的主主备份与主从备份--同步

如何解决mysql主从复制带来的数据延迟问题