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 ,执行命令生成脚本模板,配置后执行即可。
相关推荐
YanDDDeat1 分钟前
MySQL性能排查,慢查询导致CPU飙高的完整记录
mysql·安全·性能优化
MyFreeIT1 分钟前
Docker & MySQL Manual
mysql·docker·容器
菠萝猫yena1 分钟前
【数据库软件】beekeeper-studio安装方式(Mac)
数据库
Dovis(誓平步青云)5 分钟前
《指标中转站:Pushgateway 如何把监控覆盖到这些原本看不见的角落》
数据库·生成对抗网络·oracle·内网穿透·飞牛nas
Linux运维老纪9 分钟前
nginx 打造高性能 API 网关(‌Building a High-Performance API Gateway with Nginx)
linux·运维·mysql·nginx·云计算·运维开发
IT龟苓膏9 小时前
Redis 数据类型底层原理:SDS、quicklist、intset、skiplist、Bitmap、HyperLogLog 一篇讲清
数据库·redis·skiplist
流星白龙9 小时前
【MySQL高阶】19.变更缓冲区,自适应哈希索引,日志缓冲区
数据库·windows·mysql
晴天¥10 小时前
Oracle中的监听配置与管理(动态、静态监听配置对比以及listener.ora和tnsnames.ora)
数据库·oracle
瀚高PG实验室11 小时前
python连接HGDB超时
数据库·瀚高数据库·highgo
闪电悠米12 小时前
黑马点评-Redisson-01_why_redisson
java·服务器·网络·数据库·缓存·wpf