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

openEuler系统实现MySQL数据库主从复制

1、安装MySQL服务

在主从两台服务器通过以下Shell命令完成MySQL服务软件包的安装及基本配置

# 安装软件包
dnf -y install mysql-server# 初始化MySQL
mysql_secure_installation# 配置防火墙,以允许访问mysql服务
firewall-cmd --permanent --add-service=mysql firewall-cmd --reload # 启动MySQL服务
systemctl enable mysqld --now

2、配置主数据库

在主服务器中,编辑/etc/my.cnf配置文件,在【mysqld】节配置以下两行内容:

[mysqld]
server-id = 1        # 设置主数据库id
log_bin = mysql-bin  #开启二进制日志

3、创建复制用户

在主服务器中,连接MySQL数据库,通过以下两条命令创建一个专用于复制的用户,并对其授权。

-- 创建新用户并使用传统认证方式
CREATE USER 'replicator'@'%' IDENTIFIED WITH mysql_native_password BY '此处用你自己的mysql密码代替';-- 授权必要权限
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';

4、备份主数据库的数据

在主服务器中,通过以下Shell命令将主数据库备份到backup.sql文件中。

[root@Master ~]# mysqldump -u root -p --all-databases --single-transaction > backup.sql
  • --all-databases表示备份所有数据库
  • --single-transaction 表示在单个事务中执行备份,确保数据一致性

5、重启MySQL服务,并查看主服务器状态

在主服务器中,通过以下命令重启MySQL服务,并查看并记录主服务器的状态,其中File和Postion后面从服务器配置时需要用到。

# 重启MySQL服务,以让前面的配置生效
[root@Master ~]# systemctl restart mysqld.service# 查看主服务器状态
[root@Master  ~]# mysql -u root -p
……此处省略部分输出……mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 |     1265 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

6、配置从数据库

在从数据库服务器中配置/etc/mycnf文件。

[mysqld]
server-id = 2 # 设置从数据库id

7、加载备份的数据库

将主数据库的备份文件backup.sql文件复制到从服务器中,然后进行加载

# 确认当前目录下存在备份的数据库文件
[root@Slave ~]# ll
总用量 1344
-rw-r--r--. 1 root root 1368226  8月 29 21:45 backup.sql# 连接数据库,并加载备份文件
[root@Slave ~]# mysql -u root -p
……此处省略部分输出……mysql> source backup.sql

8、启动数据复制

在从服务器中,通过以下命令配置主服务器信息

# 进入MySQL,配置主服务器信息
[root@Slave ~]# mysql -u root -p
……此处省略部分输出……# 重新配置主服务器信息
CHANGE MASTER TOMASTER_HOST='此处改为主服务器IP地址',MASTER_USER='replicator',MASTER_PASSWORD='此处改为主数据库的连接密码',MASTER_LOG_FILE='mysql-bin.000002'      #此处为前面查看主服务器状态的File值',MASTER_LOG_POS=1265       # 此处为前面查看主服务器状态的Position值;# 启动复制
START SLAVE;# 检查状态
SHOW SLAVE STATUS\G# 重点关注以下三个值Slave_IO_Running: YesSlave_SQL_Running: YesSeconds_Behind_Master: 0

9、测试

通过navicat等数据库连接工具连接到主数据库,然后修改某个表中的数据,再查看从数据库中对应表的数据是否有同步更新。

http://www.xdnf.cn/news/19279.html

相关文章:

  • 基于站点、模式、遥感多源降水数据融合与评估;Python驱动下,从基础处理、机器学习建模到气候态产品生成的全流程解析
  • 2.ImGui-搭建一个外部绘制的窗口环境(使用ImGui绘制一个空白窗口)
  • python 2025/7/28
  • 03.《交换的底层逻辑:从基础到应用》
  • edgeone 边缘加速平台使用“坑”记录
  • 洛谷P1090 [NOIP 2004 提高组] 合并果子 详解
  • 三维动画渲染农场哪家便宜?
  • 【69页PPT】智慧方案智慧医疗产业园区规划设计方案(附下载方式)
  • vscode优化合集 - Visual Studio Code
  • 【51单片机】【protues仿真】 基于51单片机叫号系统
  • NLP:驱动人工智能迈向 “理解” 与 “对话” 的核心引擎
  • 香港电讯与Microsoft香港推出新世代“Teams Phone” 解决方案
  • 理想汽车智驾方案介绍专题 3 MoE+Sparse Attention 高效结构解析
  • 将自己的jar包发布到maven中央仓库(2025-08-29)
  • 循环高级(1)
  • 期权杂记(二)
  • java数据结构--排序
  • 【算法】78.子集--通俗讲解
  • 关于tresos Studio(EB)的MCAL配置之CAN
  • 补题报告08
  • 【人工智能99问】参数调整技术(31/99)
  • docker中的mysql有中文显示问题跟大小写区分问题?
  • erpc框架流程学习1
  • 玄机靶场 | 冰蝎3.0-jsp流量分析
  • RAG教程5:多表示索引和ColBERT
  • 高精度三维扫描仪三维扫描测量扇叶叶轮尺寸-中科米堆CASAIM
  • pcl封装6 connection_cloud 提取聚簇后的每个点云
  • 为什么外贸企业管理需要外贸CRM系统
  • 如何将OFD文件转换为PDF?总结在线OFD转PDF方法
  • ArcGIS Pro中 Nodata和nan 黑边的处理