PHP MySQLi权限被拒绝,但可从MySQL CLI运行

J先生

我收到错误

Failed to connect to MySQL: Permission denied

从PHP与MySQL,MySQLi和PDO连接到远程MySQL主机时。

但是,如果我在命令行上从同一主机通过MySQL通过相同的凭据连接到同一主机,则可以完美地工作。

所以我正在假设它是一个PHP配置问题?

从连接

PHP 5.6.40 (Client API version => mysqlnd 5.0.11-dev)

MySQL 5.5.59

连接到

PHP 5.6.23 (Client API version => mysqlnd 5.0.11-dev)

MySQL 5.5.52

有人知道为什么我可以从命令行连接到MySQL,但不能从PHP连接到具有完全相同凭据的同一主机吗?

夜店

我猜您在服务器上启用了SELinux。默认情况下,它不允许apache进程初始化传出网络连接。

来自https://serverfault.com/a/456875/442205的答案的副本

检查SELinux

sestatus

查看在httpd进程上设置的标志

getsebool -a | grep httpd

允许Apache通过SELinux连接到远程数据库

setsebool httpd_can_network_connect_db 1

使用-P选项使更改永久生效。如果没有此选项,则布尔值将在重新启动时重置为0。

setsebool -P httpd_can_network_connect_db 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章