PHP脚本:警告:mysqli :: mysqli():( HY000 / 2002):没有这样的文件或目录

时间:2017-10-05 11:52:02

标签: php mysql database mysqli mysql-error-1064

我使用以下代码连接到我的网络服务器上的数据库:

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

此连接正常,我可以使用我的网站(对数据库进行大量查询)没有问题。

但是我遇到了PHP脚本的问题,该脚本从产品Feed中加载了大约8000个产品。在我加载的每个产品上,我与数据库建立连接(当产品加载完成后我关闭此连接)。 当我开始这个脚本时,它通常(它有时会工作)给出以下错误(注意:这个错误直接发生在开始时,它不会加载任何产品):

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

我知道已经有很多其他主题出现同样的错误,但是我还没有设法解决我的问题。我尝试过的一件事就是替换“localhost”。使用' 127.0.0.1'。但是,这会将上述错误更改为:

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

我希望有人知道为什么会出现这些错误我期待您的意见,谢谢。

2 个答案:

答案 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

执行

答案 1 :(得分:-1)

我遇到了完全相同的问题。只需更改服务器名称 来自

localhost

localhost:3306