今日、MySQLがデータベース接続容量に達する問題が発生しました。
私が受け取ったエラーはですError establishing a database connection
。アクセスしようとすると、/phpma
次のエラーが発生しますphpMyAdmin - Error #1040 - Too many connections
。
接続数を増やすために変更する方法を調べましたが、my.cnf
しばらくこの作業を行っており、それ以降は問題がないようです。だから私はこれらの接続にどのような脆弱性があるのか少し心配しています。
CentOSを実行しています。これらの接続を確認する簡単な方法はありますか?私が知っておくべきことはありますか?それとも長い間アクティブな接続を削除する方法はありますか? (MySQLもこのように動作しますか?)
答え1
Linuxのmysqlでどのスレッドが実行されているかを確認するには:
root@myserver:~> mysqladmin processlist
同等の mysql クエリは次のとおりです。
root@myserver:~> mysql
mysql> SHOW FULL PROCESSLIST\G
また確認してみてください。スレッド情報の確認出力が何を意味するのかを確認してください。特に:
注文するそして状態スレッドが実行するアクションを示します。
ほとんどの状態は非常に速い仕事に対応します。スレッドが数秒間一定のままになると、調査する必要がある問題がある可能性があります。
重要なことは、mysqlプロセスのリストを調べて、環境の特性(長期実行プロセスや多数のプロセスなど)に基づいて疑わしいものがあるかどうかを確認することです。
答え2
このコマンドを使用して、実行中のmysqlアプリケーションをリストします。
ps -aux | grep 'mysql'
次に、デフォルトポート「3306」で必要なmysqlを起動します。