MySQL主从数据库配置教程

文章目录


前言

MySQL 内置的复制功能是一种常用的多库同步方式,基于主从结构,将主数据库的数据更改复制到从数据库 。以下是具体步骤:


MySQL8.0 超详细安装配置教程(附安装包):https://blog.csdn.net/u014164303/article/details/145493332
MySQL 8.0安装包下载地址:https://pan.quark.cn/s/2d463bf355af

设置主数据库

  • 修改配置文件:打开主数据库的 MySQL 配置文件(一般是 my.cnf 或 my.ini ),添加或修改以下配置项:
  • server-id=1 :server-id是主数据库的唯一标识,可设为任意整数 。
  • log-bin=mysql-bin :启用二进制日志记录,用于记录数据变更,供从数据库复制使用。
  • binlog-format=row :采用基于行的复制格式,能更精确记录数据变更 。
    重启主数据库 :修改配置后,重启 MySQL 服务,使配置生效。
    创建复制用户并授权:在主数据库执行以下 SQL 命令,创建用于复制的用户并授予权限:

CREATE USER 'replication_user'@'%' IDENTIFIED BY 'password';

GRANT REPLICATION SLAVE ON . TO 'replication_user'@'%';

FLUSH PRIVILEGES;

这里replication_user是用户名,password是密码,%表示该用户可从任意主机连接 。

获取主数据库位置信息:执行SHOW MASTER STATUS; ,记录结果中的File和Position值,后续配置从数据库时会用到 。

设置从数据库

  • 修改配置文件:打开从数据库的 MySQL 配置文件,设置:
  • server-id=2 :server-id是从数据库的唯一标识,不能与主数据库的server-id相同 。
  • 重启从数据库:修改后重启 MySQL 服务。
  • 配置复制连接:在从数据库执行以下 SQL 命令配置连接主数据库:

CHANGE MASTER TO

MASTER_HOST='主数据库IP地址',

MASTER_USER='replication_user',

MASTER_PASSWORD='password',

MASTER_LOG_FILE='主数据库中的File值',

MASTER_LOG_POS=主数据库中的Position值;

其中主数据库IP地址是主库 IP ,replication_user和password是在主库创建的复制用户信息,主数据库中的File值和主数据库中的Position值来自前面SHOW MASTER STATUS;命令结果 。

  • 启动从数据库复制进程:执行START SLAVE;启动复制。
  • 检查复制状态:执行SHOW SLAVE STATUS; ,确保Slave_IO_Running和Slave_SQL_Running的值都是Running ,表示复制进程正常运行 。
  • 验证数据同步:在主数据库执行数据操作,比如插入数据INSERT INTO your_table (column1, column2) VALUES ('value1', 'value2'); ,然后在从数据库执行SELECT * FROM your_table; ,若能看到主库插入的数据,说明同步成功 。

使用第三方工具实现多库同步

  • dbforge studio for mysql:能有效解决 MySQL 服务器数据库管理员在数据和架构同步方面的难题。它提供数据比较工具,可方便地进行数据同步与比较。对比数据后,结果会显示在对比网格中,也可生成报告。还支持通过任务调度器自动同步数据库 。
  • mysql workbench:免费工具,可用于同步两个数据库。能自动比较并创建变更脚本 。还可创建 EER 图来比较本地和远程数据库架构,能自动显示差异,并且可选择同步方向(从源到目标或从目标到源 )。
  • Canal :阿里开源项目,可实现 MySQL 数据同步到其他 MySQL,也能同步到 Kafka、ES 等。原理是伪装成 MySQL 从库获取数据,再转发到目标端 。
  • DataX :阿里巴巴开源的异构数据库、海量数据同步框架,支持离线和实时同步 。使用时先下载压缩包上传到服务器并解压,运行测试脚本验证安装。如需从 MySQL 同步到 MySQL ,执行命令生成脚本模板,配置后执行即可。
相关推荐
摇滚侠8 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
川石课堂软件测试9 小时前
学习软件测试需掌握的一些知识
数据库·python·sql·功能测试·网络协议·mysql·http
2501_937767169 小时前
自建 SQL 数据库定时备份踩坑复盘与落地思路
数据库·sql
silvamux_11 小时前
10款模型写种草笔记:可发布性、返工来源与成本数据缺口复盘
java·数据库·笔记
I Am a robert girl12 小时前
从 GameHorizon 拆解多时间尺度游戏评测:数据管线、离线基准与在线回放的三层设计
数据库·游戏·多时间尺度·数据管线·游戏评测·离线基准·在线回放
躺柒13 小时前
读数据安全架构设计与实践17安全架构案例(下)
数据库·安全·零信任·安全架构·防火墙·无边界
SelectDB13 小时前
实时更新排错现场:导入了却查到旧数据,和 FINAL 越加越慢的两条路
大数据·数据库·数据分析
SelectDB14 小时前
拿 Planet 的账单一行行对下来,我总结出三个可自查的校验点
大数据·数据库·数据分析
2501_9160074714 小时前
抓包工具功能对比,TraceEagle、Charles、Fiddler、Wireshark、mitmproxy 差别
前端·网络协议·ios·adb·https·fiddler·wireshark
SelectDB14 小时前
Apache Doris + Vane:让多模态数据进入业务分析
大数据·数据库·数据分析