Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
没有根用户连接MySQL数据库,PHP无法解析主机,但IP地址可以工作_Php_Mysql_Nginx_Fastcgi - Fatal编程技术网

没有根用户连接MySQL数据库,PHP无法解析主机,但IP地址可以工作

没有根用户连接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客户端,我可以毫无

我在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客户端,我可以毫无问题地连接它

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