Sådan løses MySQL-fejlen: For mange forbindelser

Introduktion til MySQL-fejlen: For mange forbindelser

Når du har en webapplikation (hjemmeside, blog, forum osv.), der oplever høj efterspørgsel, hvilket betyder, at et stort antal brugere besøger den, resulterer dette i øget forbrug af serverressourcer. Hvis denne webapplikation bruger en MySQL-database, og forespørgslerne er meget talrige ( på grund af dårlig hjemmesideprogrammering eller et stort antal brugere ), kan MySQL vise denne fejl:

mysqli_connect(): (HY000/1040): Too many connections

Hvad betyder MySQL: For mange forbindelsesfejl?

Det betyder, at der kommer for mange anmodninger til MySQL, mere end det kan acceptere, mere end det kan stå i kø eller vente.

Hvordan løses det?

Enkelt, vi skal øge den maksimale grænse for anmodninger (forbindelser), som MySQL understøtter.

Jeg giver dig to muligheder for at løse dette problem:

1. Vi redigerer filen /etc/mysql/my.cfg:

nano /etc/mysql/my.cfg

I det sætter vi følgende under hvor det står [mysql]:

max_connections = 500 max_user_connections = 500

Dette øger det maksimale antal forbindelser fra 100 (som er standard) til 500.

Vi gemmer og afslutter, derefter genstarter vi MySQL-tjenesten, og det er det. Denne ændring er permanent.

2. En anden måde at løse dette problem på er ved at ændre den maksimale grænse, men ved hjælp af en MySQL-forespørgsel.

Lad os først vise den aktuelle grænse:

mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'

Dette vil vise os noget som dette:

+ ----------------- + ------- + | Variabel_navn | Værdi | + ----------------- + ------- + | max_forbindelser | 151 | + ----------------- + ------- +

Med andre ord er den nuværende grænse 151 forbindelser, ja, lad os hæve den til 500 ved hjælp af en forespørgsel:

mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'

Klar!

Problemet på denne måde er, at når konfigurationen genstartes, går konfigurationen tabt.

For at kompensere for denne detalje, kan du lave et bash-script, der tjekker hver X mængde tid, eller endda tilføje linjen til start- eller genstartsblokken for dæmonen 

Men hvorfor vil jeg så vide denne anden mulighed? … ja, det var hvad jeg sagde. Men for en måned siden ignorerede en Ubuntu-server metode nr. 2, så... i ekstreme tilfælde af dumt OS har vi denne anden mulighed, der fungerer lige så godt 


Tilføj som foretrukken kilde i Google