it-swarm-eu.dev

mysql automatické nastavení maximálních hodnot připojení

V souboru my.cnf jsem nastavil maximální připojení na asi 2000.

max_connections=2048

Upgradoval jsem na 5.5.20 a nyní vidím následující řádek v protokolu chyb.

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

Proč mysql změnil maximální hodnotu připojení na 214?

# mysqladmin variables | grep max_connections
| max_connections | 214                                               

Měkké a tvrdé otevřené soubory omezené OS jsou 1024

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

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

Počet skutečně použitých maximálních připojení:

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

Zdá se mi v pořádku. Nemůžete mít max_connections větší než to, protože open_files_limit je příliš nízká. Pro každé připojení MySQL otevře několik souborů. Podívejte se zde .

Budete tedy muset zvýšit limit otevřených souborů ve vašem operačním systému a poté můžete zadat vyšší hodnotu max_connections.

6

Zdá se, že se jedná o stejný problém, na který jsem odpověděl v stackoverflow zde , přestože používám CentOS 7 a MySQL 5.6.26

Musíte otevřít limit otevřených souborů jak pro uživatele mysql (v limity.conf), tak pro službu mysql (v souboru mysql.service).

připojte tyto dva řádky k /etc/security/limits.conf

mysql hard nofile 65535
mysql soft nofile 65535

připojte tento řádek k /usr/lib/systemd/system/mysqld.service (v části [service])

LimitNOFILE=65535

poté se restartujte a zkontrolujte, zda tyto chybové zprávy zmizely z vašeho protokolu chyb mysql.

5
MNB

Zdá se, že se jedná o nějakou chybu v novém mysqldu. Měl jsem stejný problém. Nastavení max_connections na 700 fungovalo, ale pokud jsem jej nastavil na 900, během spuštění byl resetován na 214. Pokud by to byla záměrná změna, pak by to snížilo na 700 nebo něco podobného, ​​hodnota 214 nedává smysl.
Každopádně, zvýšení limitu deskriptoru pomocí ulimit -n problém vyřeší.

0
Bart K