Mysql主从配置操作

1- 两个mysql服务器

主(master): 腾讯云mysql version: 5.7.18
从(slave): 本地虚拟机mysql version: 5.7.21

2-配置master

1. 创建用户:    
CREATE USER  '用户名'@'%'  IDENTIFIED BY '密码';
2. 赋予权限:   
GRANT REPLICATION SLAVE ON *.* TO  '用户名'@'%' identified by '密码';
3 导出所有数据(该命令在不用进入mysql)
mysqldump -h ip -P 端口 -uroot -p'密码'  --set-gtid-purged=OFF --all-databases >文件名.sql

3-配置slave

1.数据导入从库:
mysql -uroot -p‘密码’ < 文件名.sql
2.从库指向主库:
CHANGE MASTER TO MASTER_HOST = '主库IP', MASTER_USER = '同步用户', MASTER_PASSWORD = '主库密码', MASTER_PORT = 主库端口, MASTER_LOG_FILE='主库binlog', MASTER_LOG_POS=主库pos点;

注意: MASTER_LOG_FILEMASTER_LOG_POS 的值在2-3导出的文件中查找,
或者: 执行完2-3命令, 在master数据库, mysql的help_topic表中查找

3: 开启从库的GTID(注意顺序):
		set global gtid_mode='OFF_PERMISSIVE';
		set global gtid_mode='ON_PERMISSIVE';
		set global enforce_gtid_consistency=ON;
		set global gtid_mode='ON'  
6、启动从库
start slave;

4-查看主从状态

master正常状态:
在这里插入图片描述
slave正常状态:
在这里插入图片描述

5-我在配置过程中出现的bug: Slave_IO_Running:NO, 查看slave的mysql错误日志

1: Slave I/O for channel ‘’: The replication receiver thread cannot start because the master has GTID_MODE = ON and this server has GTID_MODE = OFF. Error_code: 1593

对slave进行操作:
执行:
		show global variables like 'gtid_mode';
发现     
		gtid_mode = off
需要重新执行:
		stop slave;
		set global gtid_mode='OFF_PERMISSIVE';
		set global gtid_mode='ON_PERMISSIVE';
		set global gtid_mode='ON' ;
		start slave;

2:紧接着又出现: Slave I/O for channel ‘’: Got fatal error 1236 from master when reading data from binary log: ‘Could not find first log file name in binary log index file’, Error_code: 1236

master上执行2个sql

   flush logs;
   show master status\G;

在这里插入图片描述

slave执行3个sql

stop slave;
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000006',MASTER_LOG_POS=190; (这两个变量的值来源于master)
start slave;

在这里插入图片描述

发布了74 篇原创文章 · 获赞 16 · 访问量 3万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览