window 部署主从mysql

一、常见问题

1、Slave_IO_Running  为Connecting

主要原因:从库配置主库的信息不对,比如端口

STOP SLAVE; -- 先停止 Slave 服务(如果是新配置可跳过)

CHANGE MASTER TO
MASTER_HOST='127.0.0.1', -- 主库服务器 IP 或主机名(本地可用 127.0.0.1)
MASTER_USER='slave_user', -- 主库创建的复制账号
MASTER_PASSWORD='admin123', -- 复制账号的密码
MASTER_PORT=3306, -- 主库 MySQL 端口
MASTER_LOG_FILE='mysql-bin.000005', -- 前面主库 SHOW MASTER STATUS 看到的 File
MASTER_LOG_POS=154; -- 前面主库 SHOW MASTER STATUS 看到的 Position

START SLAVE; -- 启动 Slave 服务

SHOW SLAVE STATUS; -- 查看 Slave 状态(\G 使输出更易读)

 

2、配置之后从库不同步,且从库中通过命令SHOW SLAVE STATUS;发现Last_IO_Error 和 Last_SQL_Error  显示错误信息

Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

 

主要原因:主从Server UUID冲突错误,把data目录下的auto.cnf删除,并重启mysql即可

 

 

 

 

部署步骤

1、主库配置

[mysqld]
server-id = 1  # 设置服务器唯一ID,主从不能相同,主库通常设为1
log-bin = mysql-bin  # 开启二进制日志,指定日志文件前缀
binlog-do-db = your_database_name  # 指定要同步的数据库(可选,不设置则同步所有库)
binlog-ignore-db = mysql  # 指定不同步的系统库(可选)
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
# 如果使用 MySQL 8.0,可能还需要设置:cite[5]
binlog-format = ROW

1.1、创建复制账号

重启主库 MySQL 服务后,登录 MySQL 命令行,创建一个专门用于主从复制的用户并授权:

mysql> CREATE USER 'slave_user'@'%' IDENTIFIED BY 'your_password'; -- 创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%'; -- 授予复制权限
mysql> FLUSH PRIVILEGES; -- 刷新权限

1.2、查看主库状态

记下 File (如 mysql-bin.000001) 和 Position (如 154) 的值

mysql> CREATE USER 'slave_user'@'%' IDENTIFIED BY 'your_password'; -- 创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%'; -- 授予复制权限
mysql> FLUSH PRIVILEGES; -- 刷新权限

 

2、从库配置

 

2.1修改配置文件

[mysqld]
server-id = 2  # 设置从库的唯一ID,必须与主库不同
relay-log = relay-log-bin  # 中继日志名称(可选,默认通常有效)
replicate-do-db = your_database_name  # 指定要复制的数据库(需与主库设置同步)
# 如果主库使用了 binlog-ignore-db,从库也可对应设置 replicate-ignore-db

 

2.2 配置主库连接信息

重启从库 MySQL 服务后,登录从库 MySQL 命令行,执行 CHANGE MASTER TO 命令配置主库连接(请替换为你自己的参数):

mysql> STOP SLAVE; -- 先停止 Slave 服务(如果是新配置可跳过)
mysql> CHANGE MASTER TO
    -> MASTER_HOST='192.168.1.100', -- 主库服务器 IP 或主机名(本地可用 127.0.0.1-> MASTER_USER='slave_user', -- 主库创建的复制账号
    -> MASTER_PASSWORD='your_password', -- 复制账号的密码
    -> MASTER_PORT=3306, -- 主库 MySQL 端口
    -> MASTER_LOG_FILE='mysql-bin.000001', -- 前面主库 SHOW MASTER STATUS 看到的 File
    -> MASTER_LOG_POS=154; -- 前面主库 SHOW MASTER STATUS 看到的 Position

 

2.3  启动并检查复制状态

mysql> START SLAVE; -- 启动 Slave 服务
mysql> SHOW SLAVE STATUS \G; -- 查看 Slave 状态(\G 使输出更易读)

 

2.4  配置成功标识

关键检查点:在 SHOW SLAVE STATUS 的输出中,确保以下两个字段值为 Yes

  • Slave_IO_Running: Yes

  • Slave_SQL_Running: Yes

如果其中任一为 No,或者看到 Last_IO_Error/Last_SQL_Error,请根据错误提示排查问题

 

posted @ 2025-09-05 12:23  令令七  阅读(9)  评论(1)    收藏  举报