在进行 mysql 主、从服务器配置时,出现错误:

在进行 mysql 主、从服务器配置时,出现错误:

编程文章jaq1232025-08-05 1:19:114A+A-

# 在进行 mysql 主、从服务器配置时,”SHOW SLAVE STATUS; “ 查看从库状态 Slave_IO_Runing,出现错误:“Slave_IO_Running: Connecting” 问题分析

## 一、问题描述:

“Slave_IO_Running: Connecting” 表示 MySQL 主从复制中从服务器的 I/O 线程正尝试连接主服务器,但尚未成功连接。可能导致该问题的原因和解决方法如下:


## 二、解决方法:

### 1、确认从库连接指向主库时,用户、密码正确,以及文件名、位点无误。

```bash

#切换至从库bin目录,登录从库

mysql -h localhost -P3307 -uroot-p

#先停止同步

STOP SLAVE;

# 修改从库指向到主库,使用主库记录的文件名以及位点

# 主库show master status; 显示的 File, Position )

CHANGE MASTER TO

master_host = 'localhost',

master_user = 'db_sync',

master_password = 'db_sync',

master_log_file = 'mysql-bin.000002',

master_log_pos =154;

#启动同步

START SLAVE;

```

### 2、确认连接主、从数据库时,密码的加密方式一致。如更改新创建的 db_sync 用户加密插件为 mysql_native_password

```java

#切换至主库 bin 目录,登录主库

mysql -h localhost -u root -p

# 创建新用户,授权主库、从库复制专用账号(如果失败,可以使用以下命令)

# GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%' IDENTIFIED BY 'db_sync';

# grant replication slave on *.* to 'db_sync'@'%' identified by 'db_sync';

# flush privileges;

# 上述命令如果不成功,尝试以下:

# 先创建新用户 db_sync

create user 'db_sync'@'%' identified by 'db_sync';

# 授权主备复制专用账号

GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%';

# 或者:

GRANT REPLICATION SLAVE ON *.* TO 'db_sync'@'%' WITH GRANT OPTION;

# 更改密码加密方式(连接不上,可能是主、从数据库此步不同)

alter user 'db_sync'@'%' identified with mysql_native_password by 'db_sync';

#刷新权限

FLUSH PRIVILEGES;

#确认位点记录下文件名以及位点

show master status;

```

### 3、其他原因:

- 1. 网络不通:检查网络连接是否正常,确保从服务器与主服务器之间可以互相访问。可以使用 ping 命令检查网络连通性。

- 2. 主从配置问题:检查从服务器的主从配置是否正确,包括主服务器的 IP 地址、端口和复制用户的凭据等。确认在从服务器上正确设置了 CHANGE MASTER TO 语句中的相关参数,如 MASTER_HOST (主服务器地址)、 MASTER_PORT (主服务器端口,若不是默认的 3306 则需明确指定)、 MASTER_USER (用于复制的用户名)、 MASTER_PASSWORD (用户名对应的密码)、 MASTER_LOG_FILE (主服务器的二进制日志文件名)和 MASTER_LOG_POS (二进制日志文件的位置)。

- 3. 复制用户权限问题:确保复制用户在主服务器上具有 REPLICATION SLAVE 权限。可以在主服务器上使用以下命令检查权限: SHOW GRANTS FOR 'eplication_user'@'slave_host' ;如果没有相应权限,则使用命令授权,例如: GRANT REPLICATION SLAVE ON *.* TO repl; FLUSH PRIVILEGES; (其中 repl 是复制用户,可根据实际情况修改)。

- 4. 防火墙问题:检查主服务器和从服务器的防火墙设置,确保没有阻止数据库连接。可以尝试关闭防火墙或配置防火墙规则以允许数据库连接。例如在 CentOS 7 上,可使用以下命令停止防火墙: systemctl stop firewalld 。但需注意,关闭防火墙可能会带来安全风险,确保在必要时重新启用防火墙或配置适当的防火墙规则。

- 5. 主服务器状态问题:检查主服务器的状态是否正常,确保主服务器正在运行,并且没有出现故障或异常。

- 6. 密码错误:仔细检查复制用户的密码是否正确。

- 7. 未指定端口号:如果没有指定主服务器的端口号,可能会默认使用 3306。但如果主服务器使用了非默认端口,需在从服务器的配置中明确指定端口号,例如: CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=3307, MASTER_USER='mysqlsync', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=156;

- 8. 主服务器配置问题:检查主服务器的配置文件(如 my.cnf ),确保没有配置 bind-address 参数,该参数用于指定访问主服务器的 IP 地址,可能会限制从服务器的连接。

点击这里复制本文地址 以上内容由jaq123整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

苍茫编程网 © All Rights Reserved.  蜀ICP备2024111239号-21