MySQL中怎么配置互为主从

63次阅读
没有评论

共计 2483 个字符,预计需要花费 7 分钟才能阅读完成。

这期内容当中丸趣 TV 小编将会给大家带来有关 MySQL 中怎么配置互为主从,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

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  identified by repl
B: grant replication slave on *.* to  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:
两个数据库配置中均设置:binlog-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  identified by repl
grant replication client on *.* to  identified by repl
 
2.  自动同步脚本 autosync.sh
#!/bin/bash
while true
do
status=`/usr/bin/ -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 -h292.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

上述就是丸趣 TV 小编为大家分享的 MySQL 中怎么配置互为主从了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计2483字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)