没有根用户连接MySQL数据库,PHP无法解析主机,但IP地址可以工作
我在config.php文件中设置了MySQL连接参数,并尝试使用它连接到MySQL服务器没有根用户连接MySQL数据库,PHP无法解析主机,但IP地址可以工作,php,mysql,nginx,fastcgi,Php,Mysql,Nginx,Fastcgi,我在config.php文件中设置了MySQL连接参数,并尝试使用它连接到MySQL服务器 define('DB_HOST', 'masterdb'); define('DB_PORT', '3306'); define('DB_DBNAME', 'example'); define('DB_DRIVER', 'mysql'); define('DB_USERNAME', 'luna'); define('DB_PASSWORD', 'alfa'); 如果我尝试连接MySQL客户端,我可以毫无
define('DB_HOST', 'masterdb');
define('DB_PORT', '3306');
define('DB_DBNAME', 'example');
define('DB_DRIVER', 'mysql');
define('DB_USERNAME', 'luna');
define('DB_PASSWORD', 'alfa');
如果我尝试连接MySQL客户端,我可以毫无问题地连接它
ping masterdb
55.55.55.55
当我试图从浏览器调用页面时
mysql -h masterdb --port 3306 -uluna -p
但是,如果我更改参数以使用IP地址,它就会工作
curl "192.168.1.1/login.php"
array(2) {
["message"]=>
string(43) "SQLSTATE[HY000] [2002] Connection timed out"
MYSQL
是否有任何php.ini设置
最后,我明白了它不起作用的原因,但我还没有找到解决办法
当我使用“root”用户运行php时,它可以连接解析主机并获得成功,但如果我使用php fpm用户(nginx,nobody),它将失败
chmod 644/etc/hosts
答案是请分享更多细节-确切的问题是什么?你试图解决什么问题?这与nginx或fastcgi有什么关系?
curl "192.168.1.1/login.php"
array(2) {
["message"]=>
string(43) "SQLSTATE[HY000] [2002] Connection timed out"
define('DB_HOST', '55.55.55.55');
curl "192.168.1.1/login.php"
connection success!!!
show global variables like '%resolve%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| skip_name_resolve | ON |
+-------------------+-------+
sudo -u nginx /usr/bin/php70 /var/www/html/abc.com/test.php
fails
sudo -u root /usr/bin/php70 /var/www/html/abc.com/test.php
pass