MySQL双主环境搭建

一、安装MySQL-server

二、环境描述

console1: 1.1.1.1/24

console2: 1.1.1.2/24

三、创建授权账户

console1 作为 console2 的master,console1要允许console2的接入

console1 --> mysql
    grant replication slave on *.* to 'shdbreplicate'@'1.1.1.2' identified by 'db_console2';
console2 作为 console1 的master,console2要允许console1的接入
console2 --> mysql
    grant replication slave on *.* to 'shdbreplicate'@'1.1.1.1' identified by 'db_console1';    
四、修改/etc/my.cnf文件并 重启数据库:service mysqld restart
console1

[mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0

    # modified by zhongmou.llp
    bind-address = 0.0.0.0
    server-id = 1
    auto-increment-increment = 2
    auto-increment-offset = 1
    log-bin = master-bin
    log-bin-index = master-bin.index
    binlog-do-db = project
    binlog-do-db = project_console
    binlog-ignore-db = mysql
    binlog-ignore-db = test
    slave-skip-errors=1062

    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
console2

[mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0

    # modified by zhongmou.llp
    bind-address = 0.0.0.0
    server-id = 2
    auto-increment-increment = 2
    auto-increment-offset = 2
    log-bin = master-bin
    log-bin-index = master-bin.index
    binlog-do-db = project
    binlog-do-db = project_console
    binlog-ignore-db = mysql
    binlog-ignore-db = test
    slave-skip-errors=1062

    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
五、查看数据库master状态
File和position可能随时会变,在使用时以实际的为准
console1 --> mysql

show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+------------------+----------+--------------+------------------+ 
| mysql-bin.000006 |      107 |              |                  | 
+------------------+----------+--------------+------------------+ 
1 row in set
console2 --> mysql

show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | 
+------------------+----------+--------------+------------------+ 
| mysql-bin.000008 |      201 |              |                  | 
+------------------+----------+--------------+------------------+ 
1 row in set
六、互为备用数据库的配置

console1 --> mysql

stop slave;

change master to master_host='1.1.1.2',master_user='shdbreplicate',master_password='db_console1',
master_log_file='mysql-bin.000008',master_log_pos=201;

start slave;
console2 --> mysql

stop slave;

change master to master_host='1.1.1.1',master_user='shdbreplicate',master_password='db_console2',
master_log_file='mysql-bin.000006',master_log_pos=107;

start slave;
七、验证双主建立成功

检查Slave_IO_Running,Slave_SQL_Running都为Yes,与Errno相关的参数都为空或者为0

console1和console2--> mysql

show slave status\G;

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
八、功能验证

在双主环境下增删改数据,看对方数据库是否能同步。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于MySQL双主集群的搭建,可以按照以下步骤进行操作: 1. 安装MySQL:在两台服务器上分别安装MySQL数据库。 2. 配置MySQL主从复制:选择一台服务器作为主服务器(Master),另一台作为从服务器(Slave)。 - 在主服务器上,修改my.cnf配置文件,开启二进制日志(binary log)和唯一ID(server-id),并重启MySQL服务。 - 在主服务器上创建用于复制的账号,并授权给从服务器的IP地址。 - 在从服务器上修改my.cnf配置文件,配置主服务器的IP地址、唯一ID和启用从服务器功能(slave)。 - 在从服务器上启动复制进程并连接到主服务器。 3. 同步数据:将主服务器上的数据同步到从服务器。 - 在主服务器上执行`FLUSH TABLES WITH READ LOCK;`命令,暂停写入操作,并记录当前二进制日志文件和位置。 - 在主服务器上执行`SHOW MASTER STATUS;`命令,获取二进制日志文件和位置的信息。 - 在从服务器上执行`CHANGE MASTER TO MASTER_HOST='主服务器IP', MASTER_USER='复制账号', MASTER_PASSWORD='复制账号密码', MASTER_LOG_FILE='主服务器二进制日志文件', MASTER_LOG_POS=主服务器二进制日志位置;`命令,配置与主服务器的连接信息。 - 在从服务器上执行`START SLAVE;`命令,启动复制进程。 - 在主服务器上执行`UNLOCK TABLES;`命令,恢复写入操作。 4. 测试集群:在主服务器上进行写入操作,在从服务器上进行读取操作,验证数据是否同步。 请注意,MySQL双主集群的搭建需要仔细配置和管理,并且在遇到网络故障或者数据冲突时可能需要手动处理。建议在生产环境中使用专业的数据库集群解决方案来保证高可用性和数据一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值