先週、mysql max_connectionsを151から1000に更新しました。
use mysql;
set global max_connections = 1000;
今日、ホスティング会社で停電があり、サーバーがシャットダウンしてから再起動しました。再起動後、max_connections変数は151にリセットされました。
これはデフォルトの動作ですか? max_connectionsグローバルがリセットされないようにするにはどうすればよいですか?
参照:
MySQL 5.7
はい、これがデフォルトの動作です。どうやって ? max_connectionsのデフォルト値は151です。
これは MySQL 5.7 、 MySQL 5.6 、および MySQL 5.5 に当てはまります。
/etc/my.cnf
にmax_connectionsがない場合、151がmax_connectionsとして表示されます。
set global max_connections = 1000;
を実行するだけです。
ホスティング会社はそのエントリを/etc/my.cnf
に入れる必要があります
[mysqld]
max_connections=1000
そうしないと、mysqldを再起動するたびにmax_connectionsが151にリセットされます。
私は以前これを提案しました
Jul 06, 2012
: vpsで実行されているmysqlでの接続と致命的なエラーの解決方法質問の他の部分に対処するには...
ホスティング会社が変数を変更できるかどうかに関係なく、議論しましょうなぜ 151以上が必要です。
これがWebサイトである場合、各ページは接続し、いくつかのことを行い、すぐに切断する必要があります。 20以上の接続を必要とするまれなWebサイトです。
ApacheなどのWebサーバーがMaxClients
=大きな数値などのように適切に構成されていない場合は、修正する必要があります。リソースを奪い合う152(または30)のWebクライアントは、単に遅延してレイテンシを伸ばしますなしスループットを向上させます。
接続を長時間開いたままにする「遅い」クエリがある場合。それらを見てみましょう。それらを高速化すると、151を超える接続の「ニーズ」を解決できる場合があります。
システムが非常に過負荷になっている場合は、レプリケーションを検討してください。複数のスレーブがあり、それぞれがreadonlyクエリに151の接続を提供できます。
PS:MySQL 8.0では、別の方法でグローバルを設定できます。