MySQL主从配置教程:单主机与从机同步

需积分: 7 0 下载量 56 浏览量 更新于2024-09-14 1 收藏 165KB DOC 举报
"MySQL主从配置" MySQL主从配置是一种常见的数据库高可用性和数据冗余解决方案,它允许数据从一个主服务器(Master)实时同步到一个或多个从服务器(Slave)。这种配置对于防止数据丢失、提供读写分离、以及在主服务器故障时保持服务连续性至关重要。 ### 1. 主从配置概述 主从复制的基本原理是,主服务器上的所有写操作(DDL和DML语句)都会被记录到二进制日志(binlog)中。然后,从服务器通过网络连接定期或实时获取这些日志,并在自己的数据副本上执行相同的操作,从而达到数据的一致性。 ### 2. 准备工作 - **硬件与网络**: 配置主从的两台服务器需要在同一个局域网内,确保网络连通且延迟较低,以减少数据同步延迟。 - **软件需求**: 安装相同版本的MySQL服务器,例如示例中的mysql-5.5.15。同时,可能需要辅助工具,如MySQL客户端(Navicat等)和文本编辑器(Notepad++等)来管理和编辑配置文件。 ### 3. 配置主服务器(Master) - **关闭MySQL服务**: 在开始配置前,需要停止MySQL服务以避免数据冲突。 - **编辑配置文件**: 修改`my.ini`(Windows)或`my.cnf`(Linux),添加或修改以下参数: - `server-id`: 为主服务器分配一个唯一的ID(通常从1开始)。 - `log-bin`: 启用二进制日志记录,指定日志文件的位置。 - `binlog_format`: 设置日志格式,常见的有`ROW`、`STATEMENT`和`MIXED`,推荐使用`ROW`以保证最佳兼容性和安全性。 - 可能还需要开启`skip-slave-start`,以防启动时自动尝试复制。 ### 4. 复制配置 - **创建用于复制的用户和权限**: 在主服务器上创建一个用户,并赋予其只读权限,用于从服务器连接和同步数据。 ```sql CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; ``` - **获取主服务器的二进制日志位置和文件名**: 这是初始化从服务器复制时所需的初始位置信息。 ```sql SHOW MASTER STATUS; ``` ### 5. 配置从服务器(Slave) - **在从服务器上编辑配置文件**: 添加`server-id`参数,确保与主服务器ID不同。 - **启动复制**: 使用从服务器上获取的主服务器信息,初始化复制。 ```sql CHANGE MASTER TO MASTER_HOST='192.168.0.100', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='binary_log_file_name', MASTER_LOG_POS=log_position; START SLAVE; ``` 其中,`binary_log_file_name`和`log_position`是从主服务器`SHOW MASTER STATUS`命令得到的。 ### 6. 监控与维护 - 通过`SHOW SLAVE STATUS\G`检查从服务器的状态,确保复制正在正常进行。 - 定期检查主从数据一致性,以防止复制错误或延迟。 - 如果出现问题,根据错误日志排查故障,可能需要调整复制参数或重新初始化复制。 ### 7. 阅读指南与注意事项 - 本手册适用于技术部全体成员,旨在帮助不熟悉MySQL主从配置的开发人员快速理解和实施。 - 要注意,对从服务器的写操作可能导致复制失败,应保持从服务器为只读状态。 - 在实际操作中,务必谨慎处理数据库配置,避免造成数据丢失。 通过遵循以上步骤和注意事项,你可以成功地设置一个MySQL主从环境,实现高效、安全的数据同步。