背景: mysql を mysqli に置き換える場合、次の警告が表示されます。実際には、そうではありません。理由は、ソケットの変更が完全に変更されていないため、mysql の show processlist に表示されないためです。実際、tshark でパッケージを取得すると、実際に接続されていることがわかります (http://justwinit.cn/post/7458/)。おそらく mysqli クライアント自体によって報告されたものと思われますが、この問題は小さいですが、実行に時間がかかりました。Php を再インストールしようとしましたが、パスが間違って書かれていることがわかり、mysqli クライアントによってエラー メッセージが表示されました。多くの接続があり、間違った方向が発生しました。以下の通り:
リーリー変更後は忘れずに 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.sock接続アドレスを変更します。mysql.default_socket=/data/mysqldb/mysql.sock
3. TCPソケットを使用して接続します
mysql('127.0.0.1','ユーザー名','パスワード');
PHPのmysql_connect()関数を紹介しましょう
定義と使用法
mysql_connect() 関数は、非永続的な MySQL 接続を開きます。
文法
リーリー
パラメータ | 説明 |
---|---|
サーバー |
オプション。接続するサーバーを指定します。 「hostname:port」などのポート番号、またはローカルホストの「:/path/to/socket」などのローカルソケットへのパスを含めることができます。 PHP ディレクティブ mysql.default_host が定義されていない場合 (デフォルトの場合)、デフォルト値は「localhost:3306」です。 |
ユーザー | オプション。ユーザー名。デフォルト値は、サーバープロセス所有者のユーザー名です。 |
パスワード | オプション。パスワード。デフォルト値は空のパスワードです。 |
新しいリンク | オプション。 mysql_connect() が同じパラメータで 2 回目に呼び出された場合、新しい接続は確立されませんが、すでに開いている接続の ID が返されます。 new_link パラメータはこの動作を変更し、mysql_connect() が同じパラメータで以前に呼び出された場合でも、mysql_connect() が常に新しい接続を開くようにします。 |
クライアントフラグ |
オプション。 client_flags パラメータには、次の定数を組み合わせることができます:
|
返回值
如果成功,则返回一个 MySQL 连接标识,失败则返回 FALSE。
提示和注释
注释:脚本一结束,到服务器的连接就被关闭,除非之前已经明确调用 mysql_close() 关闭了。
提示:要创建一个持久连接,请使用 mysql_pconnect() 函数。
例子
<?php $con = mysql_connect("localhost","mysql_user","mysql_pwd"); if (!$con) { die('Could not connect: ' . mysql_error()); } // 一些代码... mysql_close($con); ?>