web-dev-qa-db-ja.com

mysql max_connections制限のリセット

先週、mysql max_connectionsを151から1000に更新しました。

use mysql;
set global max_connections = 1000;

今日、ホスティング会社で停電があり、サーバーがシャットダウンしてから再起動しました。再起動後、max_connections変数は151にリセットされました。

これはデフォルトの動作ですか? max_connectionsグローバルがリセットされないようにするにはどうすればよいですか?

参照:

MySQL 5.7
3
Roy Hinkley

はい、これがデフォルトの動作です。どうやって ? max_connectionsのデフォルト値は151です。

これは MySQL 5.7MySQL 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にリセットされます。

私は以前これを提案しました

1
RolandoMySQLDBA

質問の他の部分に対処するには...

ホスティング会社が変数を変更できるかどうかに関係なく、議論しましょうなぜ 151以上が必要です。

これがWebサイトである場合、各ページは接続し、いくつかのことを行い、すぐに切断する必要があります。 20以上の接続を必要とするまれなWebサイトです。

ApacheなどのWebサーバーがMaxClients =大きな数値などのように適切に構成されていない場合は、修正する必要があります。リソースを奪い合う152(または30)のWebクライアントは、単に遅延してレイテンシを伸ばしますなしスループットを向上させます。

接続を長時間開いたままにする「遅い」クエリがある場合。それらを見てみましょう。それらを高速化すると、151を超える接続の「ニーズ」を解決できる場合があります。

システムが非常に過負荷になっている場合は、レプリケーションを検討してください。複数のスレーブがあり、それぞれがreadonlyクエリに151の接続を提供できます。

PS:MySQL 8.0では、別の方法でグローバルを設定できます。

0
Rick James