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

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS AI 助手,专业版
简介: 当最简单的主从复制配置来袭,你还不动手搭建测试一下?

官方参考资料

一、环境规划

角色 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;
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
Java 测试技术 数据安全/隐私保护
通过yaml文件配置自动化测试程序
通过yaml文件可以将自动化测试环境,测试数据和测试行为分开,请看一下案例
185 4
|
6月前
|
XML Ubuntu Java
如何在Ubuntu系统上安装和配置JMeter和Ant进行性能测试
进入包含 build.xml 的目录并执行:
311 13
|
运维 关系型数据库 MySQL
os-copilot安装_配置_功能测试全集
我是一位中级运维工程师,我平时工作会涉及到 各类服务器的 数据库 与 java环境配置 操作。 我顺利使用了OS Copilot的 -t -f | 功能,我的疑惑是不能在自动操作过程中直接给与脚本运行权限,必须需要自己运行一下 chmod 这个既然有了最高的权限,为什么就不能直接给与运行权限呢。 我认为 -t 功能有用,能解决后台运行基础命令操作。 我认为 -f 功能有用,可以通过task文件中撰写连续任务操作。 我认为 | 对文件理解上有很直接的解读,可以在理解新程序上有很大帮助。
408 86
|
人工智能 Ubuntu Linux
os-copilot使用之全面配置与使用测试
作为一名个人开发者,我主要从事云服务器架设工作。近期,我成功使用了OS Copilot的 `-t -f |` 功能,解决了执行语句、连续提问及快速理解文件的问题。我发现这些功能非常实用,特别是在使用Workbench时能快速调用AI助手。此外,建议将AI功能与xShell工具联动,进一步提升效率。文中详细记录了购买服务器、远程连接、安装配置OS Copilot以及具体命令测试的过程,展示了如何通过快捷键和命令行操作实现高效开发。
469 67
|
缓存 Java 测试技术
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
1769 3
【01】噩梦终结flutter配安卓android鸿蒙harmonyOS 以及next调试环境配鸿蒙和ios真机调试环境-flutter项目安卓环境配置-gradle-agp-ndkVersion模拟器运行真机测试环境-本地环境搭建-如何快速搭建android本地运行环境-优雅草卓伊凡-很多人在这步就被难倒了
|
域名解析 弹性计算 监控
slb测试基本配置检查
slb测试基本配置检查
347 60
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
809 60
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
454 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
监控 负载均衡 容灾
slb测试配置
slb测试配置
396 5
|
Web App开发 定位技术 iOS开发
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
1192 1