相关推荐recommended
解决pymysql.err.OperationalError: (2003, “Can‘t connect to MySQL server on ‘127.0.0.1‘
作者:mmseoamin日期:2024-04-27

`pymysql.err.OperationalError: (2003, "Can't connect to MySQL server on '127.0.0.1'` 错误信息通常表示 Python 程序使用 PyMySQL 库尝试连接运行在本地(localhost)的 MySQL 服务器时出现了连接失败的情况,错误代码 2003 指的是“无法建立与 MySQL 服务器的连接”。

其实是我的程序里配置的端口不对,正确的端口是3808(默认3306,我改了),我配成了3308。

这个问题还可能由以下几个原因造成:

1. **MySQL服务未运行**:确保目标机器上的 MySQL 服务已经启动并且正在监听连接请求。在 CentOS 或其他 Linux 发行版中,可以通过 `systemctl start mysqld` 来启动 MySQL 服务。

2. **网络问题或配置错误**:

   - 如果是在虚拟机环境中,确认主机和虚拟机之间的网络设置是否正确,包括端口转发规则,特别是如果尝试通过宿主机访问虚拟机中的 MySQL。

   - 确认MySQL服务器是否在监听正确的IP地址(这里是127.0.0.1,即本地回环接口)。在MySQL配置文件(通常是`my.cnf`或`mysqld.cnf`)中检查`bind-address`配置项是否允许来自所有地址或者至少包含127.0.0.1的连接。

3. **防火墙阻止**:检查操作系统自带的防火墙(如 iptables、firewalld)或安全组规则,确保它们没有阻止 MySQL 默认的3306端口的入站连接。

4. **连接参数错误**:检查程序中用于连接数据库的用户名、密码、端口号以及数据库名称是否正确无误。

5. **MySQL连接数满**:如果MySQL的最大连接数已满,则新的连接请求会被拒绝。

解决此类问题的步骤通常包括:

- 检查并启动MySQL服务

- 配置MySQL使其监听127.0.0.1或其他需要连接的IP地址

- 开启防火墙对应端口

- 核实PyMySQL连接字符串中的各项参数

对于虚拟机环境,还需要特别关注虚拟网络设置,并根据实际情况调整以保证宿主机能够顺利连接到虚拟机内部的服务。