mysql5.7主主配置

1. 准备工作

配置环境:centos6.9,mysql5.7

先安装、配置好两台MySQL服务器

server1 IP:192.168.1.1

server2 IP:192.168.1.2

mysql的安装请参考之前的文章:

LAMP环境搭建(centos6.9+apache2.4+mysql5.7+php7.1)

2. 在server1上操作

vi /etc/my.cnf
修改或添加下面这几行:
server-id=1

log-bin=mysql-bin # 启用二进制日志
auto-increment-increment = 2  #每次增长2
auto-increment-offset = 1 #设置自动增长的字段的偏移量
两个可选参数(2选1):
binlog-do-db=db1,db2 #需要同步的库
binlog-ignore-db=db1,db2 #忽略不同步的库

保存后重启

/etc/init.d/mysqld restart

运行mysql客户端
mysql -uroot -p

创建同步账号

grant replication slave on *.* to ‘repl2‘@‘192.168.1.2‘ identified by ‘1234‘;
flush privileges;

锁表,不让数据写入

flush tables with read lock;
show master status;

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      613 |              | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

记录下二进制日志文件名和位置

备份数据库

在mysql1上执行
mysqldump -uroot -p db1 > back.sql;

把备份好的数据拷贝到从服务器

scp back.sql 192.168.1.2:~

3. 在server2操作

vi /etc/my.cnf
修改或增加:
server-id=2 #这个数值不能和主一样
log-bin=mysql-bin # 启用二进制日志
auto-increment-increment = 2  #每次增长2
auto-increment-offset = 2 #设置自动增长的字段的偏移量

可选参数(2选1,这两个参数设置成和主一样):
replicate-do-db=db1,db2
replicate-ignore-db=db1,db2

保存后重启

/etc/init.d/mysqld restart

把在server1上备份的数据导入server2

在server2上执行
[[email protected] ~]# mysqldump -uroot -p db1 < back.sql

运行mysql客户端

mysql -uroot -p

创建同步账号

grant replication slave on *.* to ‘repl1‘@‘192.168.1.1‘ identified by ‘1234‘;
flush privileges;

show master status;

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      613 |              | mysql            |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

记录下二进制日志文件名和位置

执行以下命令
stop slave;
change master to master_host=‘192.168.1.1‘,master_user=‘repl2‘,master_password=‘1234‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=613;
(master_log_file和master_log_pos填上刚才记录下的二进制日志文件名和位置)

start slave;

查看从服务器的状态:

show slave status\G

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.1
                  Master_User: repl2
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 613
               Relay_Log_File: server2-relay-bin.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

4. 回到server1上操作

运行mysql客户端
mysql -uroot -p

取消server1上数据库的锁定

mysql> unlock tables;

执行以下命令
stop slave;
change master to master_host=‘192.168.1.2‘,master_user=‘repl1‘,master_password=‘1234‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=613;
(master_log_file和master_log_pos填上刚才记录下的二进制日志文件名和位置)

start slave;

查看从服务器的状态:

show slave status\G

mysql> show slave status\G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.2
                  Master_User: repl1
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 613
               Relay_Log_File: server1-relay-bin.000002
                Relay_Log_Pos: 320
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes

5. 主主复制测试

经测试,主主复制配置成功。

具体过程略,请自行请参考上一篇 mysql5.7主从配置 里的方法。

时间: 2024-10-29 12:46:59

mysql5.7主主配置的相关文章

mysql-5.5配置主从 及 主主关系

前言:Mysql在生产环境中的宕机率特别的高,一般我们在该机器上只安装mysql,不作他用.数据库本     身也是极易产生瓶颈的地方.Master:主(用于写入数据) Slave:从(用于读取数据),也是     实现读写分离的重要举措.国内很多的视频直播网站.bilibili等弹幕类的网站,在视频框架上     做了个透明的弹幕,       后台数据库每秒发生数以万计的读写操作,后台运维人员真是想     死的心都有...哈哈..废话不多说,开始部署-- 准备前的步骤:关闭selinux,

CentOS-7.5 配置 MySQL-5.7 双主复制

一.实验环境两台CentOS-7.5虚拟机虚机配置:1G内存.1核CPU.40G磁盘MySQL版本:社区版MySQL-5.7master_a:192.168.218.128master_b:192.168.218.136防火墙+selinux:均已关闭 双主:两台服务器互为主从双主分两步实现:1.配置以master_a为主,master_b为从的主从环境:2.配置以master_b为主,master_a为从的主从环境 配置思路:先实施Master->Slave的主主同步.主主是数据双向同步,主从

mysql主主互备模式配置

本文为南非蚂蚁的书籍<循序渐进linux-第二版>-8.3.5的读笔记 mysql双主互备架构图 mysql主主互备模式配置 环境: DB1:主服务器  centos6.6  mysql5.1.73 IP:10.24.24.111 DB2:从服务器  centos6.6  mysql5.1.73 IP:10.24.24.112 mysql VIP:10.24.24.112 ---------------------------------------- centos6.x安装mysql # y

mysql主从、主主配置

MySQL复制概述 ⑴.MySQL数据的复制的基本介绍 目前MySQL数据库已经占去数据库市场上很大的份额,其一是由于MySQL数据的开源性和高性能,当然还有重要的一条就是免费~不过不知道还能免费多久,不容乐观的未来,但是我们还是要能熟练掌握MySQL数据的架构和安全备份等功能,毕竟现在它还算是开源界的老大吧! MySQL数据库支持同步复制.单向.异步复制,在复制的过程中一个服务器充当主服务,而一个或多个服务器充当从服务器.主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环.这

mysql-5.6.26 主主复制

环境如下: CentOS6.5_64 MySQL5.6.26 master1:192.168.1.112 master2:192.168.1.114 mysql 安装 这里就忽略了,主要就是一个细心.有时候一个不小心,就会发现安装失败. 配置master1 1.修改my.cnf文件,增加如下内容: [mysqld] server-id =1    #数据库ID log-bin=myslq-bin    #启用二进制日志     binlog-do-db=tudou1    #需要同步的数据库,这

MySql数据库主主同步配置步骤

测试环境: 192.168.1.192 192.168.1.193 mysql5.2 配置192服务器: /usr/local/mysql/bin/mysql -uroot -p 授权: grant replication slave,file on *.* to 'xm1'@'192.168.1.193' identified by '100200'; 刷新: flush privileges; 配置193服务器: /usr/local/mysql/bin/mysql -uroot -p 授权

centos7mysql5.6.30单机多实例配置主主复制

1.在原来单实例的基础上修改配置/usr/my.cnf [mysqld_multi] mysqld=/usr/bin/mysqld_safe mysqladmin=/usr/bin/mysqladmin user=root [mysqld3306] port=3306 socket=/var/lib/mysql/mysql.sock pid-file=/var/lib/mysql/localhost.localdomain.pid datadir=/var/lib/mysql/ user=roo

mysql主主同步配置

                                                                        MySQL 主主同步配置  服务器名    IP    系统    MySQL 主机名 地址 系统 MYSQL-SERVER blog.sjf.com 11.1.0.200 CentOS-6.8 5.1.73-7 image.sjf.com 11.1.0.19 CentOS-6.8 5.1.73-7 一. 假设要同步的库是 test 我们这里先创建同步账

mysql 主从,双主简单配置

##创建两台版本相同的mysql 1.主节点修改配置文件 /etc/mysql/my.cf log-bin=master-bin                  #启用二进制日志 默认可以不改 # binary logging format - mixed recommended binlog_format=mixed # required unique id between 1 and 2^32 - 1 # defaults to 1 if master-host is not set #