当前位置: 首页 > news >正文

mysql8.4.2数据库做主从复制

linux rocky 9.2系统安装mysql-wsrep-8.4.2-26.20-linux-x86_64.tar.gz二进制包-CSDN博客文章浏览阅读472次,点赞7次,收藏4次。linux rocky 9.2系统安装mysql-wsrep-8.4.2-26.20-linux-x86_64.tar.gz二进制包https://blog.csdn.net/xikui1551/article/details/141021530?spm=1001.2014.3001.55021.环境准备

环境引用上一篇文章做好的数据库环境,可提供参考。

2.准备两台数据库服务器(Rocky linux 9.2+mysql8.4.2-26.20)

主机名                                                IP

mysql_master(主数据库)            192.168.0.103

mysql_slave   (从数据库)            192.168.0.106

3.主库设置

关于log-bin是否要设置可以通过查询,MySQL8是默认开启的,MySQL5.7及以下版本默认未开启。当然如果是MySQL8版本你也可以重新指定bin-log文件名称。

show variables like 'log_bin%'; 

vim /etc/my.cnf

#服务器ID

server_id=103

#打开主库binlog日志,并设置文件名前缀
log-bin=master-mysql-bin

保存,退出,重启数据库服务。

systemctl restart mysqld

主库创建同步账号--用于从库复制主库的用户,’@‘后面:安全起见,建议不使用%,指定IP。

-- 创建用户 slave
CREATE USER 'slave'@'%' IDENTIFIED BY '12345678';
-- 授权
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%';
-- 刷新权限
FLUSH PRIVILEGES;

要配置副本(从库)在正确的点开始复制过程,需要在 bin log 中记下复制源(主库)的当前坐标,如果主库已经有数据,通过命令行客户端连接到主库,并通过执行以下语句刷新所有表并阻止数据写入,如果退出该客户端,锁定将被释放。

FLUSH TABLES WITH READ LOCK;          

unlock tables;(解锁,这里不使用,可以酌情考虑是否需要上锁)
 

使用下面语句查看bin log日志文件名称和坐标位置

8.4.0及以后版本   ----SHOW BINARY LOG STATUS;

8.4.0及以前版本   ----SHOW MASTER STATUS;

这里我我们记住以下两个值,待会同步需要用到,从这里开始同步。

File                                            Position

master-mysql-bin.000002           1214

     以上都是主库操作,下面开始设置从库

     4.从库设置

     配置vim /etc/my.cnf

        server_id=106
        log-bin=master-mysql-bin

修改完成后重启服务

systemctl restart mysqld

5.配置从库连接主库 (注意标点符号)

 CHANGE REPLICATION SOURCE TO
     SOURCE_HOST='192.168.0.103',
     SOURCE_PORT=3306,
     SOURCE_USER='slave',
     SOURCE_PASSWORD='12345678',
     SOURCE_LOG_FILE='master-mysql-bin.000002',
     SOURCE_LOG_POS=1214;

从库执行命令,开始同步主库

START REPLICA;

查看复制状态

 SHOW REPLICA STATUS\G;

如果上面状态有报错或复制失败 可能是数据不一致的原因,在从库上先停止复制

STOP REPLICA;

然后重置复制,它将清除复制元数据存储库,删除所有中继日志文件,并启动新的中继日志文件

   RESET REPLICA;


   最后重启复制

   START REPLICA;

还是报错,报错内容

Error connecting to source 'slave@192.168.0.103:3306'. This was attempt 2/10, with a delay of 60 seconds between attempts. Message: Authentication plugin 'caching_sha2_password' reported error: Authentication requires secure connection.

连接到源“”时出错slave@192.168.0.103:3306'. 这是2/10的尝试,两次尝试之间有60秒的延迟。消息:身份验证插件“caching_sha2_password”报告错误:身份验证需要安全连接。

尝试在从库服务器登录主库是能登录的,证明账户密码是正确的

然后我重启了主库的数据库服务,每次重启bin-log会改变,再次查看

mysql> SHOW BINARY LOG STATUS;
+-------------------------+----------+--------------+------------------+-------------------+
| File                    | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+-------------------------+----------+--------------+------------------+-------------------+
| master-mysql-bin.000003 |      351 |              |                  |                   |
+-------------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

再次在从库执行

 CHANGE REPLICATION SOURCE TO
     SOURCE_HOST='192.168.0.103',
     SOURCE_PORT=3306,
     SOURCE_USER='slave',
     SOURCE_PASSWORD='12345678',
     SOURCE_LOG_FILE='master-mysql-bin.000003',
     SOURCE_LOG_POS=351;

发现同步正常,两个yes

      

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Python基础】Python六种标准数据类型中哪些是可变数据,哪些是不可变数据
  • SQL Zoo 9-.Window functions
  • linux证书生成详解
  • 堆的实现(偷懒版)
  • DVWA DOM Based Cross Site Scripting (DOM型 XSS)
  • 第三方jar自带logback导致本地日志文件不生成
  • 前端(HTML + CSS)小兔鲜儿项目(仿)
  • CSS3下拉菜单实现
  • windows 版本Jenkins的Jenkinsfile中共享变量
  • 数据结构--第七天
  • 【AI绘图】基于Midjourney开发的AI绘画平台,对中文很友好!
  • Ubuntu文件操作(压缩与解压缩、用户组管理、权限)
  • 鸿蒙应用服务开发【华为支付服务】客户端
  • 剖析算法内部结构----------贪心算法
  • Arduino编译时出现extra tokens at end of #ifndef directive
  • 网络传输文件的问题
  • 2017 年终总结 —— 在路上
  • Hibernate最全面试题
  • Java超时控制的实现
  • mockjs让前端开发独立于后端
  • MySQL-事务管理(基础)
  • Python学习之路13-记分
  • React-flux杂记
  • windows下使用nginx调试简介
  • 测试如何在敏捷团队中工作?
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 力扣(LeetCode)22
  • 排序算法学习笔记
  • 深度学习中的信息论知识详解
  • 树莓派 - 使用须知
  • 微服务核心架构梳理
  • 小而合理的前端理论:rscss和rsjs
  • 云大使推广中的常见热门问题
  • 第二十章:异步和文件I/O.(二十三)
  • 移动端高清、多屏适配方案
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • (C++20) consteval立即函数
  • (day18) leetcode 204.计数质数
  • (STM32笔记)九、RCC时钟树与时钟 第一部分
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (十二)Flink Table API
  • (一) 初入MySQL 【认识和部署】
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)linux下的时间函数使用
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • *p++,*(p++),*++p,(*p)++区别?
  • .NET 8 跨平台高性能边缘采集网关
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core WebAPI中使用swagger版本控制,添加注释