PHP MySQLi permission denied but working from MySQL CLI

心已入冬 提交于 2020-01-13 20:40:09

问题


I'm receiving the error

Failed to connect to MySQL: Permission denied

When connecting from PHP with MySQL, MySQLi and PDO to a remote MySQL host.

However, if I connect to the same host, with the same credentials through MySQL from the same host on the command line it works perfectly.

So I'm making the assumption its a PHP config problem?

Connecting FROM

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

MySQL 5.5.59

Connecting TO

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

MySQL 5.5.52

Anyone got any ideas why I can connect from the command line to MySQL but not from PHP to the same host with the exact same credentials?


回答1:


I guess that you have SELinux enabled on your server. By default it doesn't allow apache process to initialize outgoing network connections.

Copy of an answer from https://serverfault.com/a/456875/442205

To check SELinux

sestatus

To see what flags are set on httpd processes

getsebool -a | grep httpd

To allow Apache to connect to remote database through SELinux

setsebool httpd_can_network_connect_db 1

Use -P option makes the change permanent. Without this option, the boolean would be reset to 0 at reboot.

setsebool -P httpd_can_network_connect_db 1


来源:https://stackoverflow.com/questions/57270169/php-mysqli-permission-denied-but-working-from-mysql-cli

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!