2017-10-05 15 views
0

でそのようなファイルやディレクトリはありません、私は私のウェブサーバ上のデータベースに接続するには、次のコードを使用します。PHPスクリプト:警告:mysqliの:: mysqliの():(HY000/2002):

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

この接続問題なく、私のウェブサイト(データベースにたくさんの質問をする)を使うことができます。

しかし、私は製品フィードから約8000の製品を読み込むPHPスクリプトの問題に直面しています。私がロードする各製品で、私はデータベースとの接続を行います(そして、製品のロードが完了したらこの接続を閉じます)。 私はこのスクリプトを起動すると、それは通常(それが何らかの形で時々動作します)(注:このエラーは、開始時に直接発生し、それがロードされない任意の製品):次のエラーを与える

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

永続的な接続については、これをお読みください:http://php.net/manual/en/mysqli.persistconns.php –

+0

'p:localhost'をホスト名に書き込んでみてください米国。 –

+0

ちょうどあなたがあなたのスクリプトを変更して1つのデータベース接続しか使用しないようにすることができますか?私は、始めにそれを開き、すべての製品を処理するまで閉じないでください。 –

答えて

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

関連する問題