• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

MySQL互为主从双配置_MySQL

mysql 搞代码 4年前 (2022-01-09) 14次浏览 已收录 0个评论

gaodaima.com

1) A , B 两台 mysql 服务器
一、服务器参数,编辑 /etc/my.cnf

[A 服务器 ]
server-id = 1
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
master-host = 192.168.255.195
master-user = repl
master-password = repl
master-port = 3306
master-connect-retry = 10
sync-binlog = 1
log-bin=mysql-bin

[B 服务器 ]
server-id = 2
binlog-do-db = test
binlog-ignore-db = mysql
replicate-do-db = test
replicate-ignore-db = mysql
master-host = 192.168.255.194
master-user = repl
master-password = repl
master-port = 3306
master-connect-retry = 10
sync-binlog = 1
log-bin=mysql-bin

2) 在 A 和 B 上进行数据库操作
A/B: Slave stop;
A/B: Reset master;
A: grant replication slave on *.* to [email protected] identified by 'repl';
B: grant replication slave on *.* to [email protected] identified by 'repl';
A/B: show master status;
A: change master to master_host='192.168.255.194',master_user='repl',master_password='repl',master_port=3306,master_log_file='mysql-bin.000001',master_log_pos=98;(log 根据 master status)
B:
change master to master_host='192.168.255.195',master_user='repl',master_password='repl',master_port=3306,master_log_file='mysql-bin.000006',master_log_pos=98; (log 根据 master status)
A/B: slave start;
A/B: show slave status/G;( 查看同步状态 )
看到如下状态就表示同步成功
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master: 0

3) 测试数据库同步,在 A 的 test 库里增加表,在 B 的 test 库里删除表
Use test ;
A:Create table username (id int(15));
查看 B 中是否有 username 这个表
B: drop table username
查看 A 中是否已经删除 usernam 这个表
A/B : show slave status/G;( 再次查看同步状态,如果没问题就表示成功 )

4) 互为同步配置实例
1. A B 互为主从同步 test, 不同步 mysql :
两个数据库配置中均设置: binl本文来源gaodai#ma#com搞*!代#%^码$网*og-do-db=test, binlog-ignore-db=mysql , replicate-do-db=test , replicate-ignore-db=mysql
2. A B 互为主从只同步 test ,不同步其他数据库,新创建的也不会同步
两个数据库配置中均设置: binlog-do-db=test , replicate-do-db=test
3. A B 互为主从不同步 mysql, 同步其他数据库,譬如创建的新数据库也会同步
两个数据库配置中均设置: binlog-ignore-db=mysql , replicate-ignore-db=mysql
4. A B 互为主从同步所有数据库,包括新建的数据库
两个数据库配置中均不设置上述四项

5) 实现自动同步的 shell 脚本
1. 增加 super 和 replication client on 权限
grant super on *.* to [email protected] identified by 'repl';
grant replication client on *.* to [email protected] identified by 'repl';

2. 自动同步脚本 autosync.sh
#!/bin/bash
while true
do
status=`/usr/bin/mysql -uroot -e “show slave status/G;”|grep Slave_SQL_Running|cut -f2 -d”:”|sed 's/ //'`
if [ $status != “Yes” ]
then
A=`/usr/bin/mysql -urepl -prepl -h192.168.255.194 -e “show master status”|grep mysql-bin|awk '{print $2}'`
/usr/bin/mysql -uroot -e “slave stop”
/usr/bin/mysql -uroot -e “change master to master_host='192.168.255.194',master_user='repl',master_password='repl',master_port=3306,
master_log_file='mysql-bin.000001',master_log_pos=$A”
/usr/bin/mysql -uroot -e “slave start”
fi
sleep 10
done

3. 后台执行
nohup ./autosync.sh >/dev/null 2>&1 &

作者“duanjiangong”

gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:MySQL互为主从双配置_MySQL

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址