【问题标题】:PHP MySQLi permission denied but working from MySQL CLIPHP MySQLi 权限被拒绝,但从 MySQL CLI 工作
【发布时间】:2019-07-30 11:04:06
【问题描述】:

我收到错误消息

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 连接到具有完全相同凭据的同一主机吗?

【问题讨论】:

    标签: php mysql apache selinux


    【解决方案1】:

    我猜你的服务器上启用了 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
    

    【讨论】:

    • 你是我的救星!谢谢。
    猜你喜欢
    • 2017-04-10
    • 1970-01-01
    • 2020-09-06
    • 2021-05-03
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 2012-07-27
    • 2013-08-07
    相关资源
    最近更新 更多