windows下mysql 主从同步
2025-09-16 00:09
MySQL
142
0
0
0
标题录入
封面图
在 Windows 系统下配置 MySQL 的主从同步(Master-Slave Replication)是一个常见的数据库高可用和负载均衡方案。下面是详细的步骤说明,适用于 **MySQL 5.7 或更高版本**。 --- ## 🧩 一、环境准备 ### 1. 安装 MySQL - 主库:`192.168.1.100` - 从库:`192.168.1.101` 确保两台机器上都安装了相同版本的 MySQL。 ### 2. 配置防火墙 确保主库的 3306 端口允许从库访问。 --- ## 🚀 二、主库配置(Master) ### 1. 编辑 MySQL 配置文件 `my.ini`(通常位于 `C:\ProgramData\MySQL\MySQL Server X.X\my.ini`) ```ini [mysqld] server-id=1 log-bin=mysql-bin binlog-format=ROW ``` - `server-id=1`:主库的唯一标识。 - `log-bin=mysql-bin`:开启二进制日志。 - `binlog-format=ROW`:推荐使用行模式,避免主从不一致问题。 > 注意:如果使用 `STATEMENT` 模式,需注意某些语句可能在主从上结果不同。 ### 2. 重启 MySQL 服务 ```bash net stop MySQL net start MySQL ``` ### 3. 创建用于复制的用户 登录 MySQL: ```sql CREATE USER 'repl'@'%' IDENTIFIED BY 'your_password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; ``` ### 4. 获取主库当前状态(记录 File 和 Position) ```sql SHOW MASTER STATUS; ``` 输出示例: ``` +------------------+----------+ | File | Position | +------------------+----------+ | mysql-bin.000001 | 120 | +------------------+----------+ ``` 记住这两个值(File 和 Position),后续从库会用到。 --- ## 🛠 三、从库配置(Slave) ### 1. 编辑 MySQL 配置文件 `my.ini` ```ini [mysqld] server-id=2 relay-log=relay-bin ``` - `server-id=2`:从库的唯一标识。 - `relay-log=relay-bin`:中继日志。 ### 2. 重启 MySQL 服务 ```bash net stop MySQL net start MySQL ``` ### 3. 配置主库信息 登录 MySQL 后执行以下命令: ```sql CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='repl', MASTER_PASSWORD='your_password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=120; ``` > 替换为你的主库 IP 和之前获取的 File 和 Position。 ### 4. 启动从库复制进程 ```sql START SLAVE; ``` ### 5. 查看从库状态 ```sql SHOW SLAVE STATUS\G ``` 重点关注以下两个字段: - `Slave_IO_Running: Yes` - `Slave_SQL_Running: Yes` 如果出现错误,查看 `Last_Error` 字段。 --- ## 🔄 四、验证主从同步 ### 在主库创建一个测试表并插入数据: ```sql CREATE DATABASE testdb; USE testdb; CREATE TABLE test (id INT); INSERT INTO test VALUES (1); ``` ### 在从库查询: ```sql USE testdb; SELECT * FROM test; ``` 如果能看到 `1`,说明主从同步正常。 --- ## ⚠️ 五、常见问题排查 | 问题 | 解决方法 | |------|----------| | `Access denied for user 'repl'@'...'` | 检查用户权限、密码、主机名是否匹配 | | `Error reading master event` | 检查网络连接、防火墙、主库日志位置 | | `Replication stopped` | 使用 `STOP SLAVE;` 再 `START SLAVE;` | --- ## ✅ 六、总结 | 步骤 | 内容 | |------|------| | 1 | 主库配置 server-id 和 binlog | | 2 | 从库配置 server-id 和 relay log | | 3 | 创建复制用户并授权 | | 4 | 主库获取 Binlog 文件和位置 | | 5 | 从库配置主库信息并启动复制 | | 6 | 验证同步是否正常 | --- 如果你需要更高级的功能(如 GTID、SSL 加密、自动故障切换等),可以进一步扩展配置。 如需我帮你生成完整的 `my.ini` 文件或脚本,请告诉我具体需求。
上一篇:
MySQL left()函数
下一篇:
centos mysql从5.1升级到5.6
标题录入,一次不能超过6条
股票被退市了持有的股票怎么办?
T:0.012314s,M:126.84 KB
返回顶部
留言
留言
评论