Ubuntu下MySQL主从配置实战指南

资源类型:00-6.net 2025-07-10 01:40

ubuntu mysql 主从简介:



Ubuntu MySQL 主从复制配置指南:打造高可用数据库架构 在当今的数据密集型应用中,数据库的高可用性和可扩展性至关重要

    MySQL作为开源数据库中的佼佼者,其主从复制功能是实现读写分离、负载均衡和高可用性的重要手段

    本文将详细介绍如何在Ubuntu操作系统上配置MySQL主从复制,帮助您构建高可用的数据库架构

     一、准备工作 1. 系统环境 -操作系统:Ubuntu Server 20.04 LTS 或更高版本 -MySQL版本:MySQL 8.0 或更高版本 -网络配置:确保主服务器和从服务器之间网络互通 2. 安装MySQL 在主服务器和从服务器上分别安装MySQL

    您可以使用以下命令通过APT包管理器进行安装: bash sudo apt update sudo apt install mysql-server 安装完成后,运行以下命令确保MySQL服务已启动并设置为开机自启: bash sudo systemctl start mysql sudo systemctl enable mysql 3. 安全配置 在配置主从复制之前,建议先对MySQL进行安全配置

    运行`mysql_secure_installation`命令,按照提示设置root密码、移除匿名用户、禁止root远程登录、删除测试数据库以及重新加载权限表

     二、配置主服务器 1. 修改MySQL配置文件 编辑主服务器的MySQL配置文件`/etc/mysql/mysql.conf.d/mysqld.cnf`,添加或修改以下内容: ini 【mysqld】 server-id =1 log-bin = mysql-bin binlog-do-db = your_database_name 仅复制指定数据库,如有多个用逗号分隔 `server-id`是MySQL实例的唯一标识符,对于主从复制环境,每个服务器的`server-id`必须唯一

    `log-bin`启用二进制日志,这是主从复制的基础

    `binlog-do-db`指定需要复制的数据库,如果希望复制所有数据库,可以省略此行

     2.重启MySQL服务 修改配置后,重启MySQL服务使配置生效: bash sudo systemctl restart mysql 3. 创建复制用户 登录到MySQL主服务器,创建一个用于复制的用户,并授予必要的权限: sql CREATE USER replica_user@% IDENTIFIED BY replica_password; GRANT REPLICATION SLAVE ON. TO replica_user@%; FLUSH PRIVILEGES; 4.锁定表和获取二进制日志位置 在开始数据同步之前,锁定主服务器的表,以确保数据的一致性: sql FLUSH TABLES WITH READ LOCK; 然后,获取当前的二进制日志文件名和位置: sql SHOW MASTER STATUS; 记录下`File`和`Position`的值,稍后配置从服务器时需要用到

     5.导出数据库 在主服务器上,使用`mysqldump`工具导出需要复制的数据库: bash mysqldump -u root -p --all-databases --master-data=2 --single-transaction > db_backup.sql `--master-data=2`会在导出的SQL文件中包含CHANGE MASTER TO语句,`--single-transaction`确保在导出过程中不锁定表(适用于InnoDB存储引擎)

     6.解锁表 数据导出完成后,解锁主服务器的表: sql UNLOCK TABLES; 7.传输备份文件 将导出的SQL文件传输到从服务器

    可以使用`scp`命令: bash scp db_backup.sql user@slave_server_ip:/path/to/destination/ 三、配置从服务器 1. 修改MySQL配置文件 编辑从服务器的MySQL配置文件`/etc/mysql/mysql.conf.d/mysqld.cnf`,添加或修改以下内容: ini 【mysqld】 server-id =2 relay-log = mysql-relay-bin 确保从服务器的`server-id`与主服务器不同

     2.重启MySQL服务 修改配置后,重启MySQL服务: bash sudo systemctl restart mysql 3.导入数据库备份 在从服务器上,导入之前从主服务器传输过来的SQL文件: bash mysql -u root -p < /path/to/destination/db_backup.sql 4. 配置复制 登录到从服务器的MySQL,执行SQL文件中包含的`CHANGE MASTER TO`语句(通常在SQL文件开头部分),或者使用以下命令手动配置: sql CHANGE MASTER TO MASTER_HOST=master_server_ip, MASTER_USER=replica_user, MASTER_PASSWORD=replica_password, MASTER_LOG_FILE=mysql-bin.000001,替换为之前记录的File值 MASTER_LOG_POS=123456;替换为之前记录的Position值 5. 启动复制线程 在从服务器上,启动复制线程: sql START SLAVE; 6. 检查复制状态 使用以下命令检查从服务器的复制状态: sql SHOW SLAVE STATUSG; 确保`Slave_IO_Running`和`Slave_SQL_Running`的状态都为`Yes`

    如果出现错误,根据`Last_Error`字段的信息进行排查

     四、验证主从复制 在主服务器上插入或更新数据,然后在从服务器上查询以验证数据是否同步

    例如: 在主服务器上: sql USE your_database_name; INSERT INTO your_table(column1, column2) VALUES(value1, value2); 在从服务器上: sql USE your_database_name; SELECT - FROM your_table WHERE column1 = value1; 如果能够从从服务器查询到刚刚在主服务器上插入的数据,说明主从复制配置成功

     五、故障排查与优化 1. 常见故障排查 -复制延迟:检查网络延迟、从服务器硬件性能、查询负载等

     -数据不一致:确保在主服务器锁定表期间完成数据导出,检查是否有其他写入操作

     -连接问题:检查防火墙设

阅读全文
上一篇:OSX系统:一键彻底卸载MySQL教程

最新收录:

  • Tomcat连MySQL,访问遭拒解决方案
  • OSX系统:一键彻底卸载MySQL教程
  • MySQL安装教程:通过tar包轻松部署数据库
  • MySQL表中如何插入负数数据技巧
  • MySQL基础使用指南:入门必备
  • MySQL数据库导出BLOB字段数据全攻略
  • MySQL数据格式转换技巧揭秘
  • MySQL设置记录超时操作指南
  • MySQL:快速添加列与批量数据技巧
  • MySQL分页技巧大揭秘:轻松掌握第6页数据查询
  • MySQL应用必备软件清单
  • Ubuntu上MySQL入门快速教程
  • 首页 | ubuntu mysql 主从:Ubuntu下MySQL主从配置实战指南