CentOS中PHP连接127.0.0.1报错2003的排查与修复

纸上星河
纸上星河
发布时间:2026-10-14| 5人浏览过
原创

解决CentOS环境下PHP通过127.0.0.1连接MySQL报错“Can't connect to MySQL server on '127.0.0.1' (13) 2003”的问题。该错误多由SELinux阻止Web服务进程发起网络连接引起,可通过调整SELinux布尔值或修改配置文件来解决。

问题描述

在Linux本机运行PHP脚本时连接正常,但在浏览器访问同一脚本时却抛出以下错误:

Could not connect: Can't connect to MySQL server on '127.0.0.1' (13) 2003

这表明PHP脚本本身语法无误,但执行环境(Apache/Nginx)被系统安全模块拦截了出站数据库连接请求。

根本原因:SELinux网络限制

CentOS默认开启了SELinux,其策略默认禁止HTTPD进程(如Apache或Nginx)连接外部网络。使用以下命令检查相关布尔值:

# getsebool -a | grep httpd

如果输出显示 httpd_can_network_connect --> off,则说明确实是SELinux阻止了连接。

解决方案一:临时开启网络连接权限

如果不打算关闭SELinux,可以手动允许HTTPD进程进行网络连接:

# setsebool -P httpd_can_network_connect 1

参数解释:
- -P:持久化配置,即使重启服务器后依然生效。
- 1:开启该布尔值。

操作完成后,刷新页面测试连接是否恢复。

解决方案二:彻底关闭SELinux(生产环境需谨慎)

对于开发环境或非严格安全要求的服务器,直接关闭SELinux是更彻底的解决方式。请按照以下步骤操作:

第1步:验证当前状态

确认SELinux处于开启状态:

# sestatus -v

或者:

# getenforce

若返回 Enforcing 或 Enabled,则继续下一步。

第2步:临时关闭(立即生效)

重启不生效,仅针对当前会话:

# setenforce 0

此时再次测试,连接应当正常。但这只是权宜之计。

第3步:永久关闭(修改配置文件)

警告:在生产环境中关闭SELinux会降低系统安全性。请务必评估安全风险后再操作。

  1. 编辑SELinux配置文件:
# vi /etc/selinux/config
  1. 找到 SELINUX=enforcing 一行,将其修改为:
SELINUX=disabled
  1. 保存退出并重启系统:
# reboot

补充:关闭防火墙(如需)

如果上述步骤后仍无法连接,可能是防火墙拦截。可参考以下操作关闭iptables和ip6tables:

# chkconfig --level 12345 iptables off
# chkconfig --level 12345 ip6tables off
# service iptables stop
# service ip6tables stop

完成判断

  • SELinux布尔值已更改或状态为Disabled。
  • PHP脚本在浏览器端可成功打印出MySQL连接资源,不再报2003错误。

以上就是CentOS下PHP使用127.0.0.1连接MySQL报错的详细内容,更多关于PHP连接MySQL故障排查的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。