我使用以下代码连接到我的网络服务器上的数据库:
$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
我希望有人知道为什么会出现这些错误我期待您的意见,谢谢。
答案 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