文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Mysql双主如何配置

2023-07-02 12:31

关注

这篇“Mysql双主如何配置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mysql双主如何配置”文章吧。

前言

特点:在双主配置中,两台mysql互为主从节点。节点A是节点B的master,同时节点B也是节点A的master。

安装mysql步骤略过

一、mysql配置文件

(1)节点A配置

# 设置server-id,两节点必须不一样server-id = 100  # 开启bin_log,模式为ROW,允许最大日志为1Glog_bin = mysql-binbinlog_format = ROWmax_binlog_size = 1024M  # mysql5.7的版本不需要配置log-slave-updates=1# log-slave-updates = 1  # 实现数据库宕机恢复后,自动同步缺少的数据relay_log = mysql-relay-bin  # 设置自增ID初始值为2,每次自增量为2。即都是偶数2,4,6,8,...auto_increment_offset = 2auto_increment_increment = 2  # 开启gtidgtid_mode = ONenforce_gtid_consistency = 1  # 忽略不需要同步的schemareplicate-ignore-db = mysqlreplicate-ignore-db = information_schemareplicate-ignore-db = performance_schemareplicate-ignore-db = sys

(2)节点B配置

只列出了与节点A不同的配置

# 设置server-id,两节点必须不一样server-id = 200 # 设置自增ID初始值为1,每次自增量为2。即都是奇数1,3,5,7,...auto_increment_offset = 1auto_increment_increment = 2

二、配置节点A为节点B的master(主从模式)

节点A为master,节点B为slave。

(1)登录节点A,创建slave(节点B)使用的账号。

# 在节点A上创建账号repl_user,允许从任意IP访问,密码为slave@100,grant replication slave on *.* to 'repl_user'@'%' identified by 'slave@100';flush privileges;

(2)查看节点A的master信息

如下图所属,节点A的bin_log日志为mysql-bin.000001,位置是154

# 清空master信息。初次配置可以使用,若已运行了同步,切记不要使用!reset master; # 查看master信息show master status; +------------------+----------+--------------+------------------+---------------------------------------------+| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set                           |+------------------+----------+--------------+------------------+---------------------------------------------+| mysql-bin.000001 |     154 |              |                  | c2cf218e-2317-11ec-a36f-5cf9dd4fd6a8:1-5    |+------------------+----------+--------------+------------------+---------------------------------------------+

(3)登录节点B,设置节点B的master为节点A

# 停止节点B上的slavestop slave; # 将节点B的master设为节点A,以下的配置信息均表示节点A# MASTER_LOG_FILE和MASTER_LOG_POS,是在第(2)步中查看节点A的master信息CHANGE MASTER TO        MASTER_HOST='127.0.0.1',        MASTER_PORT=3307,       MASTER_USER='repl_user',        MASTER_PASSWORD='slave@100',        MASTER_LOG_FILE='mysql-bin.000001',        MASTER_LOG_POS=154; # 开启节点B上的slavestart slave;

(4)确认节点B的slave是否运行成功。当返回的结果中,Slave_IO_Running和Slave_SQL_Running都为YES时,表示成功。如果为NO或Connecting时,请在mysql的data目录中查看.err结尾的日志文件,找出[ERROR]级别的日志查看。初次配置时,一般都是my.ini配置问题,或同步账号创建问题导致的。

# 在节点B中查看slave状态show slave status\G; *************************** 1. row ***************************              Slave_IO_State: Waiting for master to send event                  Master_Host: 127.0.0.1                  Master_User: repl_user                  Master_Port: 3307                Connect_Retry: 60              Master_Log_File: mysql-bin.000001          Read_Master_Log_Pos: 2207               Relay_Log_File: mysql-relay-bin.000002                Relay_Log_Pos: 1143        Relay_Master_Log_File: mysql-bin.000001             Slave_IO_Running: Yes            Slave_SQL_Running: Yes                           ......

(5)若slave配置出现异常,可使用以下语句重置

reset slave all;

三、完成双主配置

        此时,已成功配置了节点A与节点B的主从模式,即节点A是节点B的master。接下来重复步骤三的操作,但是节点A、B的操作要颠倒过来,即在节点B上创建同步账号,查看master信息,在节点A上设置节点B为master。配置完成后,同样查看节点A的slave状态,Slave_IO_Running和Slave_SQL_Running是否都为YES。

四、测试

在节点A添加、删除schema或表或数据,在节点B中查看是否有正确同步。

测试自增主键,分别在节点A、B上添加自增主键的数据,与配置文件是否对应。一个为奇数,一个为偶数。增加或删除数据,主键是否会出现冲突的情况。

五、控制同步的库或表

通过修改my.ini实现

(1)在master端控制

        binlog-do-db            binlog日志记录的数据库(多数据库用,隔开)

        binlog-ignore-db      binlog日志中忽略数据库(多数据库用,隔开)

只有在binlog中记录的表,才能同步给从库

# binlog中记录这两个表binlog-do-db=db_1,db_2       # binlog中不记录这两个表 binlog-ignore-db=db_3,db_4

  (2)在slave端控制

        replicate-do-db                  设定需要复制的数据库
        replicate-ignore-db            设定需要忽略的复制数据库 
        replicate-do-table              设定需要复制的表
        replicate-ignore-table        设定需要忽略的复制表 
        replicate-wild-do-table       同replication-do-table功能一样,可以通配符
        replicate-wild-ignore-table 同replication-ignore-table功能一样,可以加通配符

        注:忽略的配置里,在从库的relaylog中仍有信息,只是没有执行同步。

# 执行同步的库replicate-do-db=db_1replicate-do-db=db_2 # 忽略同步的库replicate-ignore-db=db_3 # 执行同步的表replicate-do-table=db_1.table_areplicate-do-table=db_2.table_b # 忽略同步的表replicate-ignore-table=db_2.table_c # 只复制哪个库的哪个表replicate-wild-do-table=db_4.%  # 忽略哪个库的哪个表replicate-wild-ignore-table=mysql.%

六、一个账号多个IP

       当一台mysql作为主节点,N台作为从节点时,如果每个从节点都添加一个账号会非常繁琐。此时可以在主节点中,创建一个账号,给此账号设置多个IP,从而减少添加的账号个数。

具体做法是,将创建账号的语句执行多次,每次的IP不同即可。

# 创建一个账号名,为此账号设置多个ipgrant replication slave on *.* to 'repl_user'@'192.168.5.10' identified by 'slave@100';grant replication slave on *.* to 'repl_user'@'192.168.5.20' identified by 'slave@100';FLUSH PRIVILEGES

以上就是关于“Mysql双主如何配置”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯