ホームページ >バックエンド開発 >PHPチュートリアル >[困った問題] PHP で mysqli 関数を使用して mysql に接続すると、警告: mysqli::real_connect(): (hy000/1040): が表示されます。
背景: 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