web-development-kb-eu.site

MySQL automatische Anpassung der maximalen Verbindungswerte

Ich habe in meiner Datei my.cnf die maximale Anzahl von Verbindungen auf ca. 2000 festgelegt.

max_connections=2048

Ich habe ein Upgrade auf 5.5.20 durchgeführt und sehe jetzt die folgende Zeile im Fehlerprotokoll.

120201 19:40:24 [Warning] Changed limits: max_open_files: 1024  max_connections: 214  table_cache: 400

Warum hat MySQL den maximalen Verbindungswert auf 214 geändert?

# mysqladmin variables | grep max_connections
| max_connections | 214                                               

Vom Betriebssystem eingeschränkte Soft- und Hard-Open-Dateien sind 1024

# ulimit -Sa | grep "open files"
open files                      (-n) 1024

# ulimit -Ha | grep "open files"
open files                      (-n) 1024

Die Anzahl der tatsächlich verwendeten maximalen Verbindungen:

# mysql -e"show status like '%used_connections%'"
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Max_used_connections | 95     |
+----------------------+-------+
11
shantanuo

Es scheint mir in Ordnung zu sein. Sie können keine größeren max_connections haben, da open_files_limit zu niedrig ist. Für jede Verbindung öffnet MySQL mehrere Dateien. Schau mal hier .

Sie müssen also das Limit für geöffnete Dateien auf Ihrem Betriebssystem erhöhen, und anschließend können Sie einen höheren Wert für max_connections festlegen.

6

Dies scheint das gleiche Problem zu sein, das ich beantwortet habe im Stackoverflow hier , obwohl ich CentOS 7 & MySQL 5.6.26 verwendet habe

Sie müssen das Limit für geöffnete Dateien sowohl für den MySQL-Benutzer (in der Datei "Limits.conf") als auch für den MySQL-Dienst (in der Datei "MySQL-Service") erhöhen.

fügen Sie diese beiden Zeilen an /etc/security/limits.conf an

mysql hard nofile 65535
mysql soft nofile 65535

hängen Sie diese Zeile an /usr/lib/systemd/system/mysqld.service an (im Abschnitt [service]).

LimitNOFILE=65535

starten Sie dann endlich neu und überprüfen Sie, ob diese Fehlermeldungen aus Ihrem MySQL-Fehlerprotokoll verschwunden sind.

5
MNB

Dies scheint ein Fehler in der neuen mysqld zu sein. Ich hatte das gleiche Problem. Das Setzen von max_connections auf 700 hat funktioniert, aber wenn ich es auf 900 gesetzt habe, wurde es beim Start auf 214 zurückgesetzt. Wenn dies eine gezielte Änderung gewesen wäre, hätte sie auf 700 oder ähnliches gesenkt, der Wert 214 macht keinen Sinn.
Wie auch immer, das Erhöhen der Deskriptorgrenze mit ulimit -n behebt das Problem.

0
Bart K