2019独角兽企业重金招聘Python工程师标准>>>

同事报告一起奇怪的现象,一个最简单的测试PHP代码,在测试环境很正常,但是在正式环境下,无论用何种方式(tcp/ip、unix socket)都无法连接mysql。

我协助查看了下,确实如此,无论是指定IP、端口的tcp/ip方式连接,或者是用unix socket方式连接,报错信息都类似:

复制代码代码如下:

Could not connect: Can't connect to MySQL server on 'MYSQL.SERVER' (13)

无论如何修改MySQL的授权,或者调整php.ini中关于MySQL的设置,或者修改MySQL的监听网口,都无法解决。

而如果用命令行人工连接MySQL,则一切正常。

问题看起来像是php(with apache)不被允许连接MySQL,但是防火墙也没有限制。想来想去,唯有SELinux的因素会导致这个问题。

复制代码代码如下:

getsebool -a|grep -i httpd

可以看到这里设置了httpd进程的许可模式,再仔细看一下,有一个选项:

复制代码代码如下:

getsebool -a|grep -i httpd_can_network_connect
httpd_can_network_connect --> off

现在明白了,原来是SELinux限制了httpd对外访问的权限。将其开启即可:

复制代码代码如下:

setsebool -P httpd_can_network_connect=1

如果对SELinux不熟悉,也可以直接修改系统配置文件 /etc/sysconfig/selinux,全局关闭:

复制代码代码如下:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
#把设置改为disabled
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

然后重启操作系统,即可生效。
或者,直接执行命令,可在线生效:

复制代码代码如下:

[root@imysql~]# setenforce 0
setenforce: SELinux is disabled

转载于:https://my.oschina.net/u/2456768/blog/3012129

SELinux导致PHP连接MySQL异常Can't connect to MySQL server的解决方法相关推荐

  1. Navicat连接出现了2003-Can’t connect to MySQL server on ‘localhost’…(已解决)

    Navicat连接出现了2003-Can't connect to MySQL server on 'localhost'- 解决方法:启动服务 找到MySQLZLM(类似的名字,这个是安装MySQL ...

  2. nodejs连接mysql数据库,报错Client does not support authentication protocol requested by server的解决方法

    nodejs连接mysql数据库,报错Client does not support authentication protocol requested by server的解决方法 参考文章: (1 ...

  3. 怎么在win7链接无线网络连接服务器,Win7系统网络连接一直显示正在获取网络地址但是连不上网解决方法...

    电脑上不了网的原因很多,比如是网络设置问题.路由器问题.运营商问题.最近一个Win7用户,网络连接一直显示,正在获取网络地址但是连不上网,但是其它电脑可以上网,那么说明是电脑设置问题,那么该如何解决呢 ...

  4. 计算机无法跳转登录页面,电脑连接校园网后CMCC登录界面不能弹出的解决方法...

    电脑连接校园网后CMCC登录界面不能弹出怎么办?这是近来不少朋友都向小编反馈的问题.他们表示自己的计算机在连接校园网CMCC后登录界面无法弹出,并且无法通过手动打开网页的事,多次尝试笔者发现这是LSP ...

  5. mysql errcode 13_Linux下MySQL的写文件时权限错误(Errcode: 13)解决方法

    在数据库中select * into outfile '/home/mysql/data.sql',mysql又提示错误:ERROR 1 (HY000): Can't create/write to  ...

  6. mysql 报错 get error 28 from storage engine 解决方法

    mysql 报错 get error 28 from storage engine 解决方法 参考文章: (1)mysql 报错 get error 28 from storage engine 解决 ...

  7. (DNS被劫持所导致的)QQ音乐与视频网页打开很慢的解决方法

    (DNS被劫持所导致的)QQ音乐与视频网页打开很慢的解决方法 参考文章: (1)(DNS被劫持所导致的)QQ音乐与视频网页打开很慢的解决方法 (2)https://www.cnblogs.com/ka ...

  8. MySQL Workbench/SQLyog 高分辨率屏幕上界面模糊的解决方法

    MySQL Workbench/SQLyog 高分辨率屏幕上界面模糊的解决方法 参考文章: (1)MySQL Workbench/SQLyog 高分辨率屏幕上界面模糊的解决方法 (2)https:// ...

  9. mysql删除数据后id自增不连续的解决方法

    mysql删除数据后id自增不连续的解决方法 参考文章: (1)mysql删除数据后id自增不连续的解决方法 (2)https://www.cnblogs.com/weifeng-888/p/1163 ...

最新文章

  1. 霍夫变换(Hough Transform):霍夫变化在图像处理以及点云处理中的直线检测应用
  2. 置换 ---- 两个置换最少swap次数 E. Permutation Shift
  3. 贪心 ---- Codeforces Global Round 8,B. Codeforces Subsequences[贪心,贪的乘法原理]
  4. 《企业大数据系统构建实战:技术、架构、实施与应用》——第3章 企业大数据解决方案 3.1 企业大数据解决方案实现方式...
  5. fullcaledar日历插件
  6. 当AI遇上云计算,北京 · DevRun 华为云开发者大会
  7. js基础之函数递传参数与作用域(5下)
  8. Solidworks如何在自定义的基准面上创建3D草图
  9. 会议及作用篇--项目管理(十三)
  10. CIFAR10 代码分析详解——cifar10_train.py
  11. 系统安装部署系列教程(四):制作PE系统
  12. DIY的U盘量产CD-ROM做PE启动盘教程(银灿IS903-A4主控+东芝SLC颗粒)
  13. js: color-thief在浏览器中拾取图片的主色调
  14. 共阴数码管显示0~9的数字
  15. 2019网易互娱8.9笔试
  16. 如何让横坐标倾斜(Matlab画直方图)
  17. HI-LINK KT210 Al人脸识别串口通信协议
  18. Guna Charts WinForm 1.0.8 Crack
  19. 【毕设】班级管理系统——易搜
  20. 进程管理之PV操作的个人理解

热门文章

  1. 文本分类模型_多标签文本分类、情感倾向分析、文本实体抽取模型如何定制?...
  2. java 继承重写_java 封装 继承 重写 多态
  3. Copy++ 复制 PDF、CAJ 内容时,自动删除空格、空行,以及自动翻译[Win]
  4. Java快速入门学习笔记2 | Java语言中的基本类型
  5. java 接口隔离_《Java设计模式及实践》—1.5.4 接口隔离原则
  6. codeigniter mysql查询_php – CodeIgniter MySQL查询不起作用
  7. 新版知识付费系统付费阅读小程序源码知识付费平台
  8. 详细介绍mysql-bin.000001文件的来源及处理方法
  9. linux 下批量压缩文件
  10. Data URL和图片,及Data URI的利弊