2017-10-05 107 views
0

我用下面的代码没有这样的文件或目录连接到数据库上我的web服务器:PHP脚本:警告:mysqli的:: mysqli的()(HY000/2002):在

$conn = new mysqli("localhost", "username", "password", "database_name"); 

此连接工作正常,我可以使用我的网站(这使得数据库查询很多)没有问题。

但是我正面临一个PHP脚本的问题,该脚本从产品订阅源加载大约8000个产品。在我加载的每个产品上,我都与数据库建立连接(并且在产品加载完成时关闭此连接)。 当我开始了这个脚本通常(它在某种程度上,有时作品)提供了以下错误(注:直接在开始出现这个错误,它不会加载任何产品):

Warning: mysqli::mysqli(): (HY000/2002): No such file or directory in 

我知道,已经有很多其他相同的错误主题,但我没有设法解决我的问题。我尝试过的一件事是用'127.0.0.1'取代'localhost'。然而,这改变了上面提到的错误:

Warning: mysqli::mysqli(): (HY000/2002): Connection refused in 

我希望有人有,为什么会出现这些错误,我期待着为您输入的想法,谢谢。

+0

请阅读以下持久连接:http://php.net/manual/en/mysqli.persistconns.php –

+0

尝试将'p:localhost'写入主机名并共享发生的事情我们。 –

+0

可以肯定的是:您可以更改脚本,以便仅使用一个数据库连接?我的意思是,在开始时打开它,直到您处理完所有产品后才关闭它... –

回答

0

我遇到了类似的问题,错误很容易让人误解。虽然它并不直接回答上面的问题,我在下面留下那些谁这个网页上登陆我的发现:

1. mysql is not started and/or is not running (no such file error) 

检查下config/database.php(拒绝)

2. username/password combination is wrong 
3. hostname: switch between `localhost` OR `127.0.0.1` (depends on how the password for the mysql user is set) 

SELinux的权限:

4. Check audit.log `tail -f /var/log/audit.log` when reloading the page 
    and see if any error similar to below occures: 

avc: denied { name_connect } for pid=2440 comm="/usr/sbin/httpd" dest=3306 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:mysqld_port_t:s0 tclass=tcp_socket permissive=0

如果上述错误发生,然后以root身份执行setsebool -P httpd_can_network_connect_db 1

相关问题