mysql5.7 主从简单配置

  • 配置Master数据库

  1. 添加同步用的用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.%' IDENTIFIED BY 'mysql';
  • repl用户必须具有REPLICATION SLAVE权限,除此之外没有必要添加不必要的权限,密码为mysql。说明一下192.168.0.%,这个配置是指明repl用户所在服务器,这里%是通配符,表示192.168.0.0-192.168.0.255的Server都可以以repl用户登陆主服务器。当然你也可以指定固定Ip。
  1. 在[mysqld]下面增加下面几行代码:
server-id=1   //主数据库服务的唯一标识号
log-bin=mysql-bin

2.1 想要配置哪些同步哪些不同步则添加如下信息:

binlog-do-db = test3    #要同步的数据库
binlog-do-db = test4

binlog-ignore-db = mysql    #不需要同步的数据库 
binlog_ignore_db = information_schema
binlog_ignore_db = performation_schema
binlog_ignore_db = sys
  1. 查看日志
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000014 | 412 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
  1. 重启MySQL服务
  • 配置Slave从服务器

  1. 在[mysqld]下面增加下面几行代码:
server-id=100   //从数据库服务的唯一标识号
log-bin=mysql-bin
  1. 重启mysql使配置生效
  2. 然后连接主库
mysql> CHANGE MASTER TO 
MASTER_HOST='192.168.10.212',
MASTER_PORT=3306,
MASTER_USER='repl',
MASTER_PASSWORD='mysql',
MASTER_LOG_FILE='mysql-bin.000014',
MASTER_LOG_POS=412 
for channel '500';
Query OK, 0 rows affected
# 开始同步
mysql> start slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)

stop slave; //停止同步
start slave; //开始同步
//必须和【主库】的信息匹配。
CHANGE MASTER TO
MASTER_HOST=’192.168.10.212′, //主库IP
MASTER_PORT=3306, //主库端口
MASTER_USER=’repl’, //访问主库且有同步复制权限的用户
MASTER_PASSWORD=’mysql’, //登录密码
【关键处】从主库的该log_bin文件开始读取同步信息,主库show master status返回结果
MASTER_LOG_FILE=’mysql-bin.000014′,
【关键处】从文件中指定位置开始读取,主库show master status返回结果
MASTER_LOG_POS=412 //主数据库文件开始位置,查询日志时获得
for channel ‘300’; //定义通道名称

  1. 查看同步状态
mysql> show slave status \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.0.0.11
                  Master_User: tongbu
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000014
          Read_Master_Log_Pos: 20014049
               Relay_Log_File: centos02-relay-bin.000002
                Relay_Log_Pos: 412
        Relay_Master_Log_File: mysql-bin.000014
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
…………
  1. 配置完成,到主库创建数据库进行一些数据操作,验证配置
  • 遇到的一些错误

Slave_IO_Running: No //未运行
查看从数据库日志文件

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log:
‘Client requested master to start replication from impossible position’

查询网上文档解决 MySQL主从失败 错误Got fatal error 1236解决方法

我自己直接改了MASTER_LOG_POS=412 解决,没有从主数据库找POS

其它一个用的解决文档mysql 数据同步 出现Slave_IO_Running:No问题的解决方法小结

    原文作者:Ice_King
    原文地址: https://www.jianshu.com/p/38823a631120
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞