ホームページ  >  記事  >  バックエンド開発  >  [困った問題] PHP で mysqli 関数を使用して mysql に接続すると、警告: mysqli::real_connect(): (hy000/1040): が表示されます。

[困った問題] PHP で mysqli 関数を使用して mysql に接続すると、警告: mysqli::real_connect(): (hy000/1040): が表示されます。

WBOY
WBOYオリジナル
2016-06-23 13:16:44971ブラウズ

背景: mysql を mysqli に置き換えると、接続数が多すぎるように見えましたが、実際にはそうではありませんでした。これは、これらのソケットの変更が原因でした。 mysql の show processlist からは、接続が多すぎることがわかりました。実際、tshark を使用してパッケージをキャプチャしたところ、それが確認できたと思います。 ://justwinit.cn/post/7458/) リクエストは行われませんでしたが、おそらく mysqli クライアント自体によって報告された問題だと思いますが、長い間取り組んだ後、Php を再インストールしたくなりました。パスが間違って記述されていることがわかり、同時に mysqli クライアントから、間違った移動が多すぎるというエラー メッセージが表示されました。次のように:

[root@iZ25z0ugwgtZ etc]# grep -r "mysql.sock" ././php.ini:pdo_mysql.default_socket=/data/runsock/mysqlsock/mysql.sock./php.ini:;mysql.default_socket = /tmp/mysql.sock./php.ini:mysql.default_socket = /data/runsock/mysqlsock/mysql.sock./php.ini:mysqli.default_socket = /data/runsock/mysql.sock  //这个位置被挪动到,/data/runsock/mysqlsock/mysql.sock导致。

変更後は必ず php-fpm を再起動してください:

[root@iZ25z0ugwgtZ etc]# service php-fpm restart

php-fpm を正常にシャットダウンします

php-fpm の起動が完了しました

_____________________________トラブルシューティング主要なポイントは次のとおりです_______________________________

警告: mysqli::real_connect(): (hy000/1040): 接続が多すぎます:

シナリオ: mysql を手動でコンパイルしてインストールし、インストール場所を指定すると、php は localhost モードで mysql に接続します

理由分析: 手動でコンパイルしてインストールした後、すべての mysql ファイルは指定されたディレクトリまたはデータ ディレクトリにあります。デフォルトでは、PHP は sock ファイルを見つけるために /temp/mysql.sock のみを検索するため、sock ファイルは見つかりません。 。

解決策:

1. sock ファイルへのソフトリンクを作成します

ln -s /data/mysqldb/mysql.sock /tmp/mysql.sock;

または

2. php 接続アドレス

mysql.default_socket=/data/mysqldb/mysql.sock

3. TCP ソケットを使用して接続します

mysql('127.0.0.1','username','password');

From: http ://ju.outofmemory.cn/entry/144221

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。