当最简单的主从复制配置来袭,你还不动手搭建测试一下?

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 当最简单的主从复制配置来袭,你还不动手搭建测试一下?

官方参考资料

一、环境规划

角色 IP 主机名 操作系统 mysql版本
master 192.168.11.148 mysql8-1 CentOS7.8 8.0.26
slave 192.168.11.149 mysql8-2 CentOS7.8 8.0.26

二、注意事项

  1. 如果是虚拟机环境下(特别是克隆的),那么2台节点的网卡的UUID最好不一样,经测试,在网卡配置文件中去掉UUID参数也不影响使用和网络通信,但如需要添加UUID参数和改变UUID,那么可用以下方法操作:
# 通过uuidgen命令给指定的网卡随机生成UUID
># uuidgen ens32
8f90f93f-d026-43af-b31d-901eaa230356
# 增加到网卡配置文件中,如增加配置文件ifcfg-ens32
UUID=8f90f93f-d026-43af-b31d-901eaa230356
  1. 两个节点(master、slave)的MySQL Server的UUID不能一样,如果基于二进制包安装的mysql,那么配置文件auto.cnf是datadir目录下,也就是auto.cnf配置文件在数据目录下
  • 笔者本文的环境,两台节点的数据目录都是统一的标准路径,如:/home/mysqlData/auto.cnf
# Master节点
# cat auto.cnf 
[auto]
server-uuid=18359589-30ea-11ec-83d6-0050563fcc17
# Slave节点
# cat auto.cnf 
[auto]
server-uuid=18359589-30ea-11ec-83d6-0050563fcc18
  1. Master节点要启用二进制日志从 MySQL 8.0 开始,二进制日志默认启用

三、Master节点配置

  1. 创建同步账户
2. CREATE USER 'repl'@'192.168.11.149' IDENTIFIED BY 'abcdefg123';
CREATE USER 'repl'@'192.168.11.149' IDENTIFIED WITH mysql_native_password BY 'abcdefg123'; #推荐的方式,指定密码策略
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.11.149'; #授权
  1. 增加锁,阻止数据写入(如果没有客户端连接,可省略此步骤)
FLUSH TABLES WITH READ LOCK;
  1. 查看当前的二进制日志文件名和位置
mysql> SHOW MASTER STATUS;
+---------------------+----------+--------------+------------------+-------------------+
| File                | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------------+----------+--------------+------------------+-------------------+
| mysql8-1-bin.000003 |      156 |              |                  |                   |
+---------------------+----------+--------------+------------------+-------------------+
记录这些值。稍后在设置副本时需要它们。它们表示副本应开始处理来自源的新更新的复制坐标。
  1. 释放锁(如果没有客户端连接,可省略此步骤)
UNLOCK TABLES;
  • 建议从库配置好后,再回到主库解锁

四、Slave配置

  1. 要将从库配置与主库通信
CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.11.148', SOURCE_USER='repl', SOURCE_PASSWORD='abcdefg123', SOURCE_LOG_FILE='mysql8-1-bin.000003', SOURCE_LOG_POS=451;
  1. 启动复制
START REPLICA;

五、可能的问题

  1. 认证插件类型为'caching_sha2_password'导致从库连接不上主库
1)查看从库的log
2021-10-29T13:45:15.283827Z 8 [ERROR] [MY-010584] [Repl] Slave I/O for channel '': error connecting to master 'repl@192.168.11.148:3306' - retry-time: 60 retries: 24 message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection. Error_code: MY-002061
MY-002061错误代码:这个错误的意思是,创建的授权账号没有指定密码策略
2)查看主库
mysql> select plugin from mysql.user where user='repl';
+-----------------------+
| plugin                |
+-----------------------+
| caching_sha2_password |
+-----------------------+
3)原因
原来是主库repl的plugin是caching_sha2_password 导致连接不上,修改为mysql_native_password即可解决
4)目前主库上已经创建好了repl账号,因此在主库上修改即可
ALTER USER 'repl'@'192.168.11.149' IDENTIFIED WITH mysql_native_password BY 'abcdefg123';
5)在主库修改后,再次查看
mysql> select plugin from mysql.user where user='repl';
+-----------------------+
| plugin                |
+-----------------------+
| mysql_native_password |
+-----------------------+

六、主库常用管理命令

  1. 在主库查看已连接过来的从库状态
SHOW PROCESSLIST \G;
  1. 在主库上查看从库的基本信息
mysql> SHOW REPLICAS;
+-----------+------+------+-----------+--------------------------------------+
| Server_Id | Host | Port | Source_Id | Replica_UUID                         |
+-----------+------+------+-----------+--------------------------------------+
|         2 |      | 3306 |         1 | 18359589-30ea-11ec-83d6-0050563fcc18 |
+-----------+------+------+-----------+--------------------------------------+

七、从库常用管理命令

  1. 查看从库的复制状态
SHOW REPLICA STATUS\G;
  1. 在从库上执行:slave停止从master复制
STOP REPLICA;
  1. 也可以在从库停止指定的线程
mysql> STOP REPLICA IO_THREAD;
mysql> STOP REPLICA SQL_THREAD;
  1. 从库启动复制
START REPLICA;
  1. 从库启动指定的线程
mysql> START REPLICA IO_THREAD;
mysql> START REPLICA SQL_THREAD;
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4月前
|
测试技术 API 容器
|
4月前
|
Web App开发 Java Linux
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
Nexus【部署 02】最新版本 nexus-3.35.0-02-unix.tar.gz 安装配置启动及测试(JDK版本+虚拟机参数配置说明)
125 0
|
5天前
|
Ubuntu Linux 测试技术
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试(下)
Linux(32)Rockchip RK3568 Ubuntu22.04上部署 Docker: 详细配置与功能测试
35 1
|
6天前
|
分布式计算 Hadoop Scala
Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
【4月更文挑战第13天】Spark【环境搭建 01】spark-3.0.0-without 单机版(安装+配置+测试案例)
8 0
|
4月前
|
Ubuntu 测试技术 Linux
|
4月前
|
网络协议 Java 应用服务中间件
如何使用支付宝的沙箱环境在本地配置模拟支付并发布至公网测试
如何使用支付宝的沙箱环境在本地配置模拟支付并发布至公网测试
|
4月前
|
NoSQL 测试技术 Redis
Redis【性能 01】Redis 5.x 6.x 7.x 共5个不同版本延迟及性能测试对比分析(单机版默认配置)
Redis【性能 01】Redis 5.x 6.x 7.x 共5个不同版本延迟及性能测试对比分析(单机版默认配置)
209 0
|
4月前
|
NoSQL Java API
SpringBoot【ElasticSearch集成 02】Java HTTP Rest client for ElasticSearch Jest 客户端集成(依赖+配置+增删改查测试源码)推荐使用
SpringBoot【ElasticSearch集成 02】Java HTTP Rest client for ElasticSearch Jest 客户端集成(依赖+配置+增删改查测试源码)推荐使用
58 0
|
4月前
|
Java API
SpringBoot【集成ElasticSearch 01】2种方式的高级客户端 RestHighLevelClient 使用(依赖+配置+客户端API测试源码)
SpringBoot【集成ElasticSearch 01】2种方式的高级客户端 RestHighLevelClient 使用(依赖+配置+客户端API测试源码)
82 0
|
4月前
|
关系型数据库 MySQL Shell
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
MySQL【实践 01】Linux 环境 MySQL 数据库备份 shell 脚本(脚本源码及说明+定时任务配置+数据库恢复测试)粘贴可以
52 0

热门文章

最新文章