GVKun编程网logo

mysql 主从复制 - 方案 2(mysql主从复制步骤)

1

本文将介绍mysql主从复制-方案2的详细情况,特别是关于mysql主从复制步骤的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于centos7mys

本文将介绍mysql 主从复制 - 方案 2的详细情况,特别是关于mysql主从复制步骤的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于centos7 mysql 多实例安装 主从复制、docker mysql 主从复制、Docker 搭建 MySQL 主从复制、mysql 5.7 主从复制的知识。

本文目录一览:

mysql 主从复制 - 方案 2(mysql主从复制步骤)

mysql 主从复制 - 方案 2(mysql主从复制步骤)

   MySQL 主从介绍

(两台机器数据同步)

主:-->binlog

从:-->relaylog

 

 

主上有一个 log dump 线程,用来和从的 I/O 线程传递 binlog

 从上有两个线程,其中 I/O 线程用来同步主的 binlog 并生成 relaylog,另外一个 SQL 线程用来把 relaylog 里面的 sql 语句落地 (执行)

 

主从的应用场景:

(1)做数据的备份,(主:作读写数据,从:实时同步,当 主 宕机时,从 也可以即使提供服务 )

(2)也是做备份。(客户从 从 这台机器上读取数据(但是不能再从上写),减轻主的压力)

 

 准备工作

1. 两台机器都装上 mysql,并且都开启 mysql 的服务

======================== 配置主 ========================

主:192.1683.136.133      从:192.168.136.134

1. 修改 my.cnf,增加 server-id=133 和 log_bin=canshenglinux1

 

log-bin=mysql-bimlog

binlog_format=mixed

server-id = 159
binlog-do-db = bim    #指定数据库
binlog-do-db = bam
binlog-do-db = apphub

 

2. 修改完配置文件后,启动或者重启 mysqld 服务

 

重启完后,我们可以发现在 /data/mysql 下生成了以在配置文件中定义 log_bin=canshenglinux1 为开头的文件

这些文件很重要,不然不能实现主从

 

3. 把 mysql 库备份并恢复成 cansheng 库,作为测试数据 (这个库就是用来做主从)

 mysqldump -uroot -p123456 mysql > /tmp/mysql.sql

 mysql -uroot -p123456 -e “create database cansheng”

 mysql -uroot -p123456 cansheng < /tmp/mysql.sql

 

4. 创建用作同步数据的用户

(1)先进入到 mysql

 (2)再创建同步数据的用户 ------ 注意修改参数

 grant replication slave on *.* to ''repl''@slave_ip identified by ''123456'';

 

5. 锁定一下表:

flush tables with read lock;

(为了同步前数据一致。)

 

show master status (查看一下 position 和 file)

(退出 mysql)

 

此时查看一下 /data/mysql 又是什么库

(一般同步不要同步 mysql 库,因为里面有很多用户名和密码)

 

6. 备份一下所需要同步的库:

mysqldump -uroot -p123456 zrlog > /tmp/zrlog.sql

 

 =================== 配置从 =======================

1. 查看 my.cnf,配置 server-id=134,要求和主不一样

 

2. 修改完配置文件后,启动或者重启 mysqld 服务

/etc/init.d/mysqld restart

 

3. 把主上需要同步的库复制过来:

scp 192.168.136.133:/tmp/*.sql /tmp/

 

临时创建 alias,方便使用命令:

alias ''mysql=/usr/local/mysql/bin/mysql''

alias ''mysqldump=/usr/local/mysql/bin/mysqldump''

 

4. 进入 mysql

创建相对应的库:

create database cansheng;

create database zrlog;

create database mysql2;

 

5. 数据恢复:

mysql -uroot cansheng < /tmp/mysql.sql

 

6. 进入 mysql

(1)stop slave;

(2)change master to master_host=''192.168.136.133'', master_user=''repl'', master_password=''123456'', master_log_file=''canshenglinux1.000002'', master_log_pos=646207;

 

(3)start slave;

 

(4) 判定主从是否配置成功

show slave status\G

 

这样是表示不成功配置成功的要出现两个 yes 才成功。

不成功的因素:

(1)防火墙 systemctl  stop firewalld

 (2) selinux   --> 关闭 sentenforce 0

(3) 用户名是否正确

 

{而我的因素是在配置主的时候指定用户名和密码错误了,从头来了一次}

 

7. 回到主,进到 mysql 解除 table(表)的锁定

unlock tables;

至此完成主从配置:

 

 

 

=========== 测试主从同步 =====================

(只需要在主或者从,其中一个配置就可以了。这些参数默认是没有配置的,没有手动配置,那默认是同步所有的库)

在从上配置尽量使用最后两个,可以避免在忽略某个库或者表时,当级联查询的时候避免出现数据丢失,不该忽略的也忽略了!!

 

 



测试主从是否成功,是否同步!

1. 两台机器都进到 mysql 下,进到测试的数据库:cansheng2

 此时清空主上的 comment 表;看看从上的 comment 表数据是否也清空,从而同步。

truncate table comment;

 

 

 

删除表测试:

 

 我们不能再 从 这台机器上执行 mysql 操作,不然这时我们的主从就断开。

(因为此时我们的 position 已经改变)

如果此时我们的主从断开了,应该重新执行

 

(1)stop slave;

(2)change master to master_host=''192.168.136.133'', master_user=''repl'', master_password=''123456'', master_log_fil_log_file=''canshenglinux1.000002'', master_log_pos=646207;

 

(3)start slave;

 

(4) 判定主从是否配置成功

 

show slave status\G

 

 

这样是表示不成功配置成功的要出现两个 yes 才成功。

 

centos7 mysql 多实例安装 主从复制

centos7 mysql 多实例安装 主从复制

  • 将/etc/selinux/config里的SELINUX设置成:disabled
  • 解压mysql
  • 创建mysql实例用户及文件
  • 配置Mysql的配置文件/etc/my.cnf
  • [mysqld_multi]
    mysqld = /home/mysql/mysql/bin/mysqld
    mysqladmin = /home/mysql/mysql/bin/mysqladmin
    log = /tmp/mysql_multi.log
    
    [mysqld1]
    datadir = /home/mysql/data3306
    socket = /tmp/mysql.sock1
    port = 3306
    user = mysql
    performance_schema = off
    innodb_buffer_pool_size = 32M
    bind_address = 0.0.0.0
    skip-name-resolve = 0
    log-bin=mysql-bin
    binlog_format=mixed
    server-id=1
    
    [mysqld2]
    datadir = /home/mysql/data3307
    socket = /tmp/mysql.sock2
    port = 3307
    user = mysql
    performance_schema = off
    innodb_buffer_pool_size = 32M
    bind_address = 0.0.0.0
    skip-name-resolve = 0
    log-bin=mysql-bin
    binlog_format=mixed
    server-id=2
    
    [mysqld3]
    datadir = /home/mysql/data3308
    socket = /tmp/mysql.sock3
    port = 3308
    user = mysql
    performance_schema = off
    innodb_buffer_pool_size = 32M
    bind_address = 0.0.0.0
    skip-name-resolve = 0
    log-bin=mysql-bin
    binlog_format=mixed
    server-id=3
    

     

 

  • 主从复制:
    master:
    GRANT replication slave ON *.* TO ''bhis''@''%'' IDENTIFIED BY ''bhis'';
    show master status;
    
    
    salve:
    mysql> CHANGE MASTER TO
        -> MASTER_HOST="192.168.135.129",
        -> MASTER_USER="bhis",
        -> MASTER_PASSWORD="bhis",
        -> MASTER_LOG_FILE="mysql-bin.000001",
        -> MASTER_LOG_POS=437;
    
    start slave;
    show slave status;

     

详情请看这位大神的 

docker mysql 主从复制

docker mysql 主从复制

测试环境:linux、docker,可以参考在 linux 环境安装 docker 可以参考

  • 什么是主从复制??

主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从数据库上,然后在从数据库上对这些日志进行重新执行,从而使从数据库和主数据库的数据保持一致。
  • 主从复制的原理

1. MySql主库在事务提交时会把数据变更作为事件记录在二进制日志Binlog中;
2. 主库推送二进制日志文件Binlog中的事件到从库的中继日志Relay Log中,
之后从库根据中继日志重做数据变更操作,通过逻辑复制来达到主库和从库的数据一致性;
3. MySql通过三个线程来完成主从库间的数据复制,其中Binlog Dump线程跑在主库上,
I/O线程和SQL线程跑着从库上;
4. 当在从库上启动复制时,首先创建I/O线程连接主库,主库随后创建Binlog Dump线程
读取数据库事件并发送给I/O线程,I/O线程获取到事件数据后更新到从库的中继日志Relay Log中去,
之后从库上的SQL线程读取中继日志Relay Log中更新的数据库事件并应用

  • 下面来实操,先配置主库:

docker run -p 3307:3306 --name=mysql-master --privileged=true \
-v /data/mysql-master/log:/var/log/mysql \
-v /data/mysql-master/data:/var/lib/mysql \
-v /data/mysql-master/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7
  • 进入 mysql 的配置文件夹 /data/mysql-master/conf 中创建一个配置文件 my.cnf
touch my.cnf
  • 然后在 my.cnf 添加以下内容:
[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=101 
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql  
## 开启二进制日志功能
log-bin=mall-mysql-bin  
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M  
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed  
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7  
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062  
  • 修改完配置后重启实例
docker restart mysql-master
  • 进入mysql-master容器中
docker exec -it mysql-master /bin/bash
  • 进入 mysql,然后配置用户和授权
1. mysql -uroot -p 执行完,输入密码
2. CREATE USER ''slave''@''%'' IDENTIFIED BY ''123456'';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO ''slave''@''%'';

以上主库已经完成。

下面配置从库:

  • 创建从库容器
docker run -p 3308:3306 --name=mysql-slave --privileged=true \
-v /data/mysql-slave/log:/var/log/mysql \
-v /data/mysql-slave/data:/var/lib/mysql \
-v /data/mysql-slave/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root  \
-d mysql:5.7
  • 在 mysql 的配置文件夹 /data/mysql-slave/conf 中创建一个配置文件 my.cnf
touch my.cnf
  • 修改配置文件 my.cnf
[mysqld]
## 设置server_id,同一局域网中需要唯一
server_id=102
## 指定不需要同步的数据库名称
binlog-ignore-db=mysql  
## 开启二进制日志功能,以备Slave作为其它数据库实例的Master时使用
log-bin=mall-mysql-slave1-bin  
## 设置二进制日志使用内存大小(事务)
binlog_cache_size=1M  
## 设置使用的二进制日志格式(mixed,statement,row)
binlog_format=mixed  
## 二进制日志过期清理时间。默认值为0,表示不自动清理。
expire_logs_days=7  
## 跳过主从复制中遇到的所有错误或指定类型的错误,避免slave端复制中断。
## 如:1062错误是指一些主键重复,1032错误是因为主从数据库数据不一致
slave_skip_errors=1062  
## relay_log配置中继日志
relay_log=mall-mysql-relay-bin  
## log_slave_updates表示slave将复制事件写进自己的二进制日志
log_slave_updates=1  
## slave设置为只读(具有super权限的用户除外)
read_only=1
  • 修改完配置后重启实例:
docker restart mysql-slave

将主从数据库进行连接

  • 连接到主数据库的 mysql 客户端,查看主数据库状态:
show master status

 

第一个红圈是同步的文件,第二个是同步到位置点

  • 进入 mysql-slave 容器中:
docker exec -it mysql-slave /bin/bash
  • 在容器中使用 mysql 的登录命令连接到客户端:
mysql -uroot -p
  • 在从数据库中配置主从复制:
change master to master_host=''192.168.6.132'', master_user=''slave'', master_password=''123456'', master_port=3307, master_log_file=''mall-mysql-bin.000001'', master_log_pos=617, master_connect_retry=30;  
  • 主从复制命令参数说明:

    • master_host:主数据库的 IP 地址;
    • master_port:主数据库的运行端口;
    • master_user:在主数据库创建的用于同步数据的用户账号;
    • master_password:在主数据库创建的用于同步数据的用户密码;
    • master_log_file:指定从数据库要复制数据的日志文件,通过查看主数据的状态,获取 File 参数;
    • master_log_pos:指定从数据库从哪个位置开始复制数据,通过查看主数据的状态,获取 Position 参数;
    • master_connect_retry:连接失败重试的时间间隔,单位为秒。
  • 查看主从同步状态:

show slave status \G;Copy to clipboardErrorCopied
  • 从数据库状态显示如下:

 

  • 开启主从同步:
start slave;

主从复制测试

主从复制的测试方法有很多,可以在主实例中创建一个数据库,看看从实例中是否有该数据库,如果有,表示主从复制已经搭建成功。

  • 在主实例中创建一个数据库 mall

  • 在从实例中查看数据库,发现也有一个 mall 数据库,可以判断主从复制已经搭建成功。

到这里,画一个完美的符号。

这期间碰到几个问题:

1. docker 安装 mysql 容器的时候出现问题:docker 安装 mysql chown: changing ownership of ''/var/lib/mysql/'': Permission denied

2. 主从同步出现一下错误:

Slave_IO_Running: Connecting
Slave_SQL_Running: Yes

解决方法:导致 lave_IO_Running 为 connecting 的原因主要有以下 3 个方面:

1、网络不通
2、密码不对
3、pos 不对

主要参考于:http://www.macrozheng.com/#/reference/mysql_master_slave?id=%e4%bb%80%e4%b9%88%e6%98%af%e4%b8%bb%e4%bb%8e%e5%a4%8d%e5%88%b6%ef%bc%9f

Docker 搭建 MySQL 主从复制

Docker 搭建 MySQL 主从复制

1、运行两个 MySQL 容器:

# mysql-master
docker run -d --name mysql-master -v /home/soft/mysql/mster:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.28

# mysql-slave
docker run -d --name mysql-slave -v /home/soft/mysql/slave:/var/lib/mysql -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 --link mysql-master mysql:5.7.28

2、进入主容器:

docker exec -it mysql-master bash
安装 vim:
apt-get update & apt-get install vim

编辑配置文件:

vi /etc/mysql/my.cnf

在最后添加

[mysqld] 
# 同一局域网内注意要唯一 
server-id=1 
# 开启二进制日志功能 
log-bin=mysql-master-bin
保存,退出容器,重启 mysql-master:
docker restart mysql-master

3、进入从容器:

docker exec -it mysql-slave bash
安装 vim:
apt-get update & apt-get install vim

编辑配置文件:

vi /etc/mysql/my.cnf

在最后添加

[mysqld] 
# 同一局域网内注意要唯一 
server-id=2
保存,退出容器,重启 mysql-slave:
docker restart mysql-slave

4、进入主容器:

docker exec -it mysql-master mysql -u root -p

创建用户并赋予复制权限:

GRANT replication slave ON *.* TO ''slave''@''%'' IDENTIFIED BY ''123456'';
执行命令查看二进制文件信息:
show master status
+-------------------+----------+--------------+------------------+-------------------+

| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------+----------+--------------+------------------+-------------------+
| mysql-master-bin.000001 | 609 | | | |
+-------------------+----------+--------------+------------------+-------------------+
1 row in set
记录 File、Position 两个字段值

5、进入从容器:

docker exec -it mysql-slave mysql -u root -p

执行命令停止 slave:

stop slave;

执行命令切换主从复制配置:

change master to master_host=''mysql-master'',master_user=''slave'',master_password=''123456'',master_log_file=''mysql_master_bin.000001'',master_log_pos=609;

执行命令启动 slave:

start slave;

查看配置状态:

+----------------------------------+-------------+-------------+-------------+---------------+-------------------+---------------------+-------------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+----------------------------+-----------+---------------------+--------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+
| Slave_IO_State | Master_Host | Master_User | Master_Port | Connect_Retry | Master_Log_File | Read_Master_Log_Pos | Relay_Log_File | Relay_Log_Pos | Relay_Master_Log_File | Slave_IO_Running | Slave_SQL_Running | Replicate_Do_DB | Replicate_Ignore_DB | Replicate_Do_Table | Replicate_Ignore_Table | Replicate_Wild_Do_Table | Replicate_Wild_Ignore_Table | Last_Errno | Last_Error | Skip_Counter | Exec_Master_Log_Pos | Relay_Log_Space | Until_Condition | Until_Log_File | Until_Log_Pos | Master_SSL_Allowed | Master_SSL_CA_File | Master_SSL_CA_Path | Master_SSL_Cert | Master_SSL_Cipher | Master_SSL_Key | Seconds_Behind_Master | Master_SSL_Verify_Server_Cert | Last_IO_Errno | Last_IO_Error | Last_SQL_Errno | Last_SQL_Error | Replicate_Ignore_Server_Ids | Master_Server_Id | Master_UUID | Master_Info_File | SQL_Delay | SQL_Remaining_Delay | Slave_SQL_Running_State | Master_Retry_Count | Master_Bind | Last_IO_Error_Timestamp | Last_SQL_Error_Timestamp | Master_SSL_Crl | Master_SSL_Crlpath | Retrieved_Gtid_Set | Executed_Gtid_Set | Auto_Position | Replicate_Rewrite_DB | Channel_Name | Master_TLS_Version |
+----------------------------------+-------------+-------------+-------------+---------------+-------------------+---------------------+-------------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+----------------------------+-----------+---------------------+--------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+
| Waiting for master to send event | mysql1 | slave | 3306 | 60 | mysql1-bin.000001 | 609 | 59e0b81b9fbb-relay-bin.000002 | 321 | mysql1-bin.000001 | Yes | Yes | | | | | | | 0 | | 0 | 609 | 535 | None | | 0 | No | | | | | | 0 | No | 0 | | 0 | | | 1 | 1625200d-3672-11ea-ae5f-0242ac110002 | /var/lib/mysql/master.info | 0 | NULL | Slave has read all relay log; waiting for more updates | 86400 | | | | | | | | 0 | | | |
+----------------------------------+-------------+-------------+-------------+---------------+-------------------+---------------------+-------------------------------+---------------+-----------------------+------------------+-------------------+-----------------+---------------------+--------------------+------------------------+-------------------------+-----------------------------+------------+------------+--------------+---------------------+-----------------+-----------------+----------------+---------------+--------------------+--------------------+--------------------+-----------------+-------------------+----------------+-----------------------+-------------------------------+---------------+---------------+----------------+----------------+-----------------------------+------------------+--------------------------------------+----------------------------+-----------+---------------------+--------------------------------------------------------+--------------------+-------------+-------------------------+--------------------------+----------------+--------------------+--------------------+-------------------+---------------+----------------------+--------------+--------------------+
1 row in set

6、验证:

连接主数据库,新建数据库表或插入数据;查看从数据库是否自动创建,验证主从复制是否成功;
 
 
 

mysql 5.7 主从复制

mysql 5.7 主从复制

一、原理

    该过程的第一部分就是master记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务。 

下一步就是slave将master的binary log拷贝到它自己的中继日志。首先,slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经跟上master,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。 

SQLslave thread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新slave的数据,使其与master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。 

此外,在master中也有一个工作线程:和其它MySQL的连接一样,slave在master中打开一个连接也会使得master开始一个线程。复制 过程有一个很重要的限制——复制在slave上是串行化的,也就是说master上的并行更新操作不能在slave上并行操作。

(简短描述:主从数据库同步工作原理(流程):

但主库的数据发生修改时,数据更改的记录将写入到主库的二进制文件中,从库此时将会调用一个IO线程读取主库的二进制文件,并与中继日志作对比,并将存在差异的事件写入到中继日志中(当两日志内容事件一致时,IO线程将处于睡眠状态),然后从库再调用SQL线程去读取中继日志,并将刚写入的事件数据放入到从库中以保持主从数据库数据同步。)

二、要求mysql主从的环境要求

    1、互相同步的两台mysql的版本必须保证大版本号一致。比如5.5+和5.6+之间同步数据,5.6的数据同步到5.5就会出现问题。保证大版本号一致很重要。

    2、每台服务器必须开启binlog,不开启binlog则根本无法开始数据同步。

    3、每台服务器必须配置不同的server-id,范围在1到(2^32-1)之间。

        4、要保证防火墙对3306端口的开启,为了学习数据库的主从配置。

     5、保证网络畅通

 

主从系统要保持一致:包括数据库版本,操作系统版本,磁盘IO磁盘容量,网络带宽等。

[root@data02 ~]# cat /etc/redhat-release

CentOS release 6.2 (Final)

[root@data02 ~]#

 

主库master

从库slave

OS系统版本

CentOS release 6.2 (Final)

CentOS release 6.2 (Final)

数据库版本

5.6.12-log

5.6.12-log

磁盘容量

50G

30G

主机ip地址

192.168.52.129

192.168.52.130

端口

3306

3306

内存

1G

1G

服务器类型

虚拟机

虚拟机

三、主服务配置

 1. MySQL的配置文件的位置是在 /etc/my.cnf

     添加

    server_id=

    #指定binlog的生成目录,很多人不是这么写的

    log-bin=/var/lib/mysql-log/mastera

    gtid_mode=on

    enforce_gtid_consistency=1

2.创建binlog目录并授权mysql用户

mkdir /var/lib/mysql-log/mastera

chown mysql . /var/lib/mysql-log/mastera

3.重启mysql服务

service mysqld restart

4.查看binlog是否生成

ls /var/lib/mysql-log/mastera

5.导出主数据库(注:如果两个数据库状态一致即表及数据记录都一样,就不用做5,6这两步了)

mysqldump -uroot -p''密码'' -A --single-transaction > /tmp/mysql.all.sql

这个过程会发生报警,因为用了明码。不用担心

6.将mysql.all.sql 拷贝到slave上,可以用scp命令

7.在slave服务器上将导出的mysql.all.sql脚本,导入mysql服务器

mysql -uroot -p''密码''  <  sql备份文件

8.查看slave上是否导入

 

四.从服务器操作

修改my.cnf

1.#设置和master不同的server-id

server-id= 

gtid_mod=on

enforce_git_consistency=1

2.重启mysql服务

service mysqld restart

 

防火墙开启master 服务器的3306端口

centos6.* 开启方式

 

centos7.*的开启方式

[root@localhost ~]# firewall-cmd –add-port=3306/tcp 

[root@localhost ~]# firewall-cmd –permanent –add-port=3306/tcp 

[root@localhost ~]# firewall-cmd –reload success 

五.最后两步

1.登录master授权slave

grant replication slave on  *.*  to ‘用户名’@''slaveip'' identified by ''密码'';

flush privileges;

2.登录slave修改master

change master to master_host=''192.168.0.103'',master_user=''slave1'',master_password=''123456'',master_auto_position=1;

3.slave 上打开复制线程

start slave(停止slave 命令:stop slave)

4.查看slave状态

 show slave status;

查看返回状态找到一下两个字段,

1) Slave_IO_Running: Yes

IO线程状态,必须YES

2) Slave_SQL_Running: Yes

SQL线程状态,必须YES

 

六.这时候就完成了主从复制

 

 

 

    

 

 

 

 

 

 

 

  

 

关于mysql 主从复制 - 方案 2mysql主从复制步骤的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于centos7 mysql 多实例安装 主从复制、docker mysql 主从复制、Docker 搭建 MySQL 主从复制、mysql 5.7 主从复制的相关知识,请在本站寻找。

本文标签: