博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
实战MYSQL 8.0.12 主主复制配置过程
阅读量:7092 次
发布时间:2019-06-28

本文共 2030 字,大约阅读时间需要 6 分钟。

实战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 # 采用源码安装方式, 此过程略,或者参考

由于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 root@mysql2:/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. 两台服务器中的数据库版本必须一样;

转载于:https://blog.51cto.com/snowlai/2298971

你可能感兴趣的文章
vue示例之transition-另外发现一个vue(可能的)小bug
查看>>
linux高级编程day07 笔记
查看>>
基于IPv6的数据包分析(第三组)
查看>>
JavaScript获取网页属性包括宽、高等
查看>>
Angular 4.0 架构详解
查看>>
JAVA递归遍历指定目录下的所有文件(包括子目录下的文件)
查看>>
range()和xrange()的区别
查看>>
快速搭建fabric-v1.1.0的chaincode开发环境
查看>>
Python学习的相关文件链接
查看>>
JSON 入门
查看>>
constructor中能不能有返回值?
查看>>
03动物类
查看>>
池化层pooling
查看>>
GPS坐标转百度地图并且加载地图示例.支持微信端访问
查看>>
浏览器自动跳转
查看>>
数据可视化-EChart2.0使用总结2
查看>>
继承的设计技巧
查看>>
github隐藏文件&删除文件
查看>>
弹窗开关js
查看>>
表单应用
查看>>