sql >> Database >  >> RDS >> Mysql

Kan max_open_files voor Mysql max-verbindingen in Ubuntu 15 niet verhogen

Ubuntu is in versie 15.04 overgestapt van Upstart naar Systemd en respecteert niet langer de limieten in /etc/security/limits.conf voor systeemservices. Deze limieten zijn nu alleen van toepassing op gebruikerssessies.

De limieten voor de MySQL-service zijn gedefinieerd in het Systemd-configuratiebestand, dat u vanaf de standaardlocatie naar /etc/systemd moet kopiëren en vervolgens de kopie moet bewerken.

sudo cp /lib/systemd/system/mysql.service /etc/systemd/system/
sudo vim /etc/systemd/system/mysql.service # or your editor of choice

Voeg de volgende regels toe aan de onderkant van het bestand:

LimitNOFILE=infinity
LimitMEMLOCK=infinity

U kunt ook een numerieke limiet instellen, bijv. LimitNOFILE=4510 .

Laad nu de Systemd-configuratie opnieuw met:

sudo systemctl daemon-reload

Start MySQL opnieuw en het zou nu moeten voldoen aan de max_connections-richtlijn.

Ik had ook problemen met het netjes stoppen van MySQL na het upgraden naar 15.04. Als dit van invloed is op u (u weet het want het duurt 300 seconden voordat er een time-out optreedt wanneer u service mysql stop doet of service mysql restart ) en vervolgens de volgende regel toe te voegen aan hetzelfde bestand /etc/systemd/system/mysql.service loste het voor mij op:

ExecStop=/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf shutdown

Dit laatste probleem lijkt te zijn verholpen tegen 16.04 en deze regel is niet langer nodig, dus voordat u een distributie-upgrade uitvoert, moet u MySQL stoppen en de ExecStop verwijderen regel uit het configuratiebestand.



  1. Hoe te repareren "EXECUTE-instructie is mislukt omdat de WITH RESULT SETS-clausule 1 resultaatset (s) heeft gespecificeerd ..." in SQL Server

  2. Onverwachte geclusterde indexfragmentatie

  3. Door de gebruiker gedefinieerde MySQL-variabelen in Laravel 3?

  4. Manieren waarop toegang uw bedrijf geld kan besparen