MySQL8.0基于GTID主从复制

官方表示 MySQL 8 要比 MySQL 5.7 快 2 倍,还带来了大量的改进和更快的性能,那么MySQL8.0基于GTID主从复制与之前版本有什么不同呢?下面我们一起来实践吧!

MySQL8.0之前版本的mysql密码加密方式为mysql_native_password,而MySQL8.0默认新添加的用户密码默认使用的caching_sha2_password,因此进行使用主从复制时可能会遇到错误:“error :Authentication plugin ’ caching_sha2_password’ reported error: Authentication requires secure connection.”。
解决方法有两种:
方法一: 需要修改数据库的认证方式为旧版mysql_native_password,网上95%博客都是采用此方法解决,在此不再过多陈述,大家可以自行查找文档。
方法二: 通过server的public key加密password
采用mysql8.0默认插件caching_sha2_password,客户端连接获取server的public key来加密password,即 get_master_public_key=1;,具体步骤见博客。

环境:

主数据库:192.168.0.44
从数据库:192.168.0.118

1、配置主服务器

1.1配置文件/etc/my.cnf 中开启gtid

[mysqld]
serve
### 配置 MySQL 8.0 主从复制 #### 设置主服务器 为了建立主从关系,在主服务器上需完成如下配置: - 修改`my.cnf`文件,确保启用了二进制日志记录以及指定了唯一的server-id。 ```ini [mysqld] log-bin=mysql-bin server-id=1 gtid-mode=ON enforce-gtid-consistency=true ``` 保存更改后,重启MySQL服务以应用新的设置[^2]。 对于Docker环境中的实例,则可以通过命令来实现重启操作: ```bash docker restart mysql8-master ``` #### 创建用于复制的账户 进入MySQL控制台并创建具有REPLICATION SLAVE权限的新用户。这一步骤是为了让从服务器能够连接至主服务器获取更新数据流。 ```sql CREATE USER 'repl_user'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl_user'@'%'; FLUSH PRIVILEGES; ``` #### 获取当前二进制日志位置 在继续之前,锁定表单防止任何写入活动影响到即将开始的数据同步过程,并记下此时此刻的binlog坐标作为后续配置依据之一。 ```sql FLUSH TABLES WITH READ LOCK; SHOW MASTER STATUS; ``` #### 备份现有数据库结构与数据 使用合适的工具导出整个数据库的内容准备迁移到其他地方去;这里推荐采用官方提供的mysqldump实用程序来进行这项工作。 #### 解锁表格以便恢复正常运作 一旦备份结束就立即解除先前施加于系统的读取锁定状态从而恢复正常的业务处理能力。 ```sql UNLOCK TABLES; ``` #### 设置从服务器 同样地调整目标机器上的MySQL配置参数使其具备唯一的服务编号(server-id),并且开启全局事务识别器(GTID)支持功能。 ```ini [mysqld] server-id=2 gtid-mode=ON enforce-gtid-consistency=true ``` 接着启动相应的容器化组件(如果适用的话) ```bash docker restart mysql8-replica1 mysql8-replica2 ``` #### 初始化从站端点 首次运行时应当通过CHANGE MASTER语句指定源地址及相关认证信息连同必要的偏移量一起传递给slave进程初始化链接通道。 ```sql CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl_user', MASTER_PASSWORD='password', MASTER_AUTO_POSITION = 1; START SLAVE; ``` 最后验证一下副本是否正常运转起来没有遇到什么障碍物阻碍其前进的步伐。 ```sql SHOW SLAVE STATUS\G ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值