mysql主主同步稳定吗_MySQL主主同步

环境介绍:

CentOS-6.7  64位

Master1:Blog-MySQL-1  192.168.133.128

Master2:Blog-MySQL-2  192.168.133.132

MySQL 版本 5.5.33 二进制包安装

检查两台机器的实验环境是否符合要求。并保证可以正常登陆 mysql

以其中一台截图为例:

hostname

ifconfig eth0 | grep "inet addr" | awk "{print $2}" | cut -d: Cf2

mysql CV

cat /etc/redhat-release

uname -a

FvhKHTQKM--YyDAjJUqeU2YOj9rZ

Fk7r8bShCqTOu7V-WFyn3dPRAyV7

以上算是双主环境搭建的准备工作吧,接下来编辑 Master 1 的 my.cnf 文件

为了方便查阅还是跟之前一样,先过滤一下 # , $  开头的行吧

cat /etc/my.cnf | grep -v ^# | grep -v ^$ > tmp.log

cat tmp.log > /etc/my.cnf

FpKPnuyGWRLCVuMMRuCzDjVbX4Ba

Master 1 的  my.cnf 文件中的 [mysqld] 中添加以下字段

vim /etc/my.cnf

server-id  = 1

log-bin = mysql-bin

auto_increment_increment = 2

auto_increment_offset     = 1

log-slave-updates

expire_logs_days = 7

skip-name-resolve

lower_case_table_names=1

Fl62JtmpoUt6ORZ8i7W-g6TAyuOE

以上参数

auto_increment_increment = 2           #自增ID的间隔,如 1 3 5 间隔为 2

auto_increment_offset     = 1                #ID的初始位置

修改配置文件需要重启 Master 1 的数据库

/etc/init.d/mysqld restart

Fja9tVvEdHCZLIuTt1dr7KdqkQbG

登录 Master 1 的 mysql

mysql -uroot -p123456

Fu-TfAsreVL0xprfdu7cwiiNHZF8

在 Master 1 上创建同步到 Master 2 上的账号

grant replication slave on *.* to yuci@"%" identified by "123456";

flush privileges;

FvrD6fECh6WbSmVsWChoaKtFNCr6

检查刚才刚才的操作

select user,host from mysql.user;

show grants for yuci@"%";

Flj8dz0ab9ByJVqC8OXUlaX8KfXP

继续操作 Master1 锁表,查看 binlog 文件及 pos 位置节点

flush table with read lock;

show master status;

FlA5VUEm0Uoaw92g_b_EQ8MNkM9V

新打开一个窗口,将 Master 1 的数据库文件导出,通过 scp 命令传递给 Master 2 上

mysqldump -uroot -p123456 --events -A -B > /root/test.sql

scp test.sqlroot@192.168.133.132:/root

yes

FptS2XyGSkSiU2ZitWwU7RC3qpav

解表 Master 1

unlock tables;

FoVFKog8syc8JYznntwxSWoX7g8W

登陆到 Master 2 上,现将刚才的数据库 test.sql 导入

mysql -uroot -p123456 < test.sql

Fp5OpG8lguYUOk_GBSGhMhEnMDIb

编辑 Master 2 的 my.cnf 文件,跟上面的操作一样,只需要注意的是 server-id 和 offset

cat /etc/my.cnf | grep -v ^# | grep -v ^$ > tmp.log

cat tmp.log > /etc/my.cnf

Fjz8K1bMfr6ORwLg0MOczOc7TSN-

server-id       = 2

log-bin = mysql-bin

auto_increment_increment = 2

auto_increment_offset    = 2

log-slave-updates

expire_logs_days = 7

skip-name-resolve

lower_case_table_names=1

Fquc81QUg4LpT8ZODwStj3h8ywwB

修改配置文件后别忘重启 mysql

/etc/init.d/mysqld restart

FqYJaIi0b3LPdzr9cADOTuWBAdHV

登陆 Master 2 的 mysql 数据库

mysql -uroot Cp123456

CHANGE MASTER TO

MASTER_HOST="192.168.133.128",

MASTER_PORT=3306,

MASTER_USER="yuci",

MASTER_PASSWORD="123456",

MASTER_LOG_FILE="mysql-bin.000001",

MASTER_LOG_POS=332;

Fv6Am7MQB7F4avFyS4625PjjjWDQ

查看两个IO SQL连个线程是否连接成功

start slave;

show slave status\G

FmUOMclMJdVNFcIvF3VnoaUG92Hf

在 Master 2 上创建一个用于同步到 Master 1 的账号,刷新并检查

其实就是两台 mysql 分别创建两个账号,账号不能重复

grant replication slave on *.* to yuci1@"%" identified by "123456";

flush privileges;

select user,host from mysql.user;

show grants foryuci@"%";

Fhgr3pt9kiZF6Q5lASXMZK1hDQqh

查看 Master 2 的 binlog 文件和 pos 号

show master status;

FgM6UpyIIpixJsl7I_aFjnMngUFs

返回 Master 1 上,设置账号同步参数

输入时注意每个参数,别把它和之前的账号,用户名,密码搞反了

CHANGE MASTER TO

MASTER_HOST="192.168.133.132",

MASTER_PORT=3306,

MASTER_USER="yuci1",

MASTER_PASSWORD="123456",

MASTER_LOG_FILE="mysql-bin.000002",

MASTER_LOG_POS=333;

FjjzISk4dYeG6bkMcK7wid2tgbUU

在 Master 1 上启动 slave,并查看

start slave;

show slave status\G

FkO_VKpbx089KFHLS2dZfrXhE-OX

到此为止,双主的环境就算是搭建完成了,接下来测试一下。

先在 Master 1 上创建数据库 yucitest1

create database yucitest1;

show databases;

FpdWUCtVxiF9OaxjWqo7Yu91K4Ef

在 Master 2 上查看所有数据库,可以看到刚才创建的 yucitest1 ,将其删除,创建 yucitest2 数据库

show databases;

drop database yucitest1;

create database yucitest2;

FhtsHyLFrJ9XkqxTARceF8JckgC2

返回 Master 1 看到 yucitest2 ,环境搭建成功

show databases;

FhKj-hf4yhywq8KuCPln1oeaJdG1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值