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 ,执行命令生成脚本模板,配置后执行即可。
相关推荐
鸠摩智首席音效师几秒前
MySQL ERROR 1114 (HY000): The table is full
数据库·mysql
数据大魔方5 分钟前
【期货量化实战】豆粕期货量化交易策略(Python完整代码)
开发语言·数据库·python·算法·github·程序员创富
Codeking__25 分钟前
Redis的value类型介绍——zset
数据库·redis·缓存
muddjsv27 分钟前
SQLite3 核心命令全解析 (从入门到精通)
数据库
難釋懷31 分钟前
认识NoSQL
数据库·nosql
亿坊电商34 分钟前
利于SEO优化的CMS系统都有哪些特点?
前端·数据库
阿阿阿安34 分钟前
MySQL(一)数据库风险操作场景总结
数据库·mysql
计算机程序设计小李同学1 小时前
平价药店销售与管理系统
java·mysql·spring·spring cloud·ssm
心丑姑娘1 小时前
使用ClickHouse时的劣质SQL样例
数据库·sql·clickhouse
什么都不会的Tristan1 小时前
redis篇
数据库·redis·缓存