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 ,执行命令生成脚本模板,配置后执行即可。
相关推荐
java叶新东老师17 分钟前
PowerDesigner 画ER图并生成sql 教程
数据库·sql
Jonariguez1 小时前
Mysql InnoDB存储引擎
数据库·mysql
nbsaas-boot2 小时前
SQL Server 窗口函数全指南(函数用法与场景)
开发语言·数据库·python·sql·sql server
Y.ppm2 小时前
数分思维12:SQL技巧与分析方法
数据库·sql
森叶2 小时前
Claude Code 安装向量数据库MCP服务
数据库
bestsun9992 小时前
Time drifts can result in unexpected behavior such as time-outs.
数据库·oracle
waveee1233 小时前
学习嵌入式的第三十四天-数据结构-(2025.7.29)数据库
数据结构·数据库·学习
何传令3 小时前
SQL优化系统解析
数据库·sql·mysql
找不到、了3 小时前
Redis内存使用耗尽情况分析
数据库·redis·缓存
DarkAthena3 小时前
【GaussDB】内存资源告急:深度诊断一起“memory temporarily unavailable“故障
数据库·gaussdb