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 ,执行命令生成脚本模板,配置后执行即可。
相关推荐
小陈工16 小时前
Python Web开发入门(十七):Vue.js与Python后端集成——让前后端真正“握手言和“
开发语言·前端·javascript·数据库·vue.js·人工智能·python
0xDevNull21 小时前
MySQL数据冷热分离详解
后端·mysql
科技小花21 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸21 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain21 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希1 天前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神1 天前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员1 天前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java1 天前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿1 天前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb