Slik løser du MySQL-feilen: For mange tilkoblinger

Introduksjon til MySQL-feilen: For mange tilkoblinger

Når du har en webapplikasjon (side, blogg, forum osv.) Som er i høy etterspørsel, det vil si et stort antall brukere besøker, betyr det økt forbruk på serveren. Hvis nettappen bruker en MySQL-database, og spørsmålene er veldig mange (på grunn av dårlig programmering av nettet eller av mange brukere som bruker nettet), er det en mulighet for at MySQL vil vise denne feilen:

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

Hva betyr feilen MySQL: Too Many Connections?

Det betyr at for mange forespørsler kommer til MySQL, mer enn det kan akseptere, mer enn det kan stå i kø eller vente.

Hvordan løse det?

Enkelt, vi må øke den maksimale grensen for forespørsler (tilkoblinger) som MySQL støtter.

Jeg vil gi deg to alternativer for å løse dette problemet:

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

nano /etc/mysql/my.cfg

I den setter vi følgende under der det står [mysql]:

max_connections = 500 max_user_connections = 500

Dette vil øke det maksimale antallet tilkoblinger fra 100 (som er standard) til 500.

Vi lagrer og avslutter, så starter vi MySQL-tjenesten på nytt og det er det. Denne endringen er permanent.

2. En annen måte å løse dette problemet på er å endre maksimumsgrensen lik, men gjennom et MySQL-spørsmål.

La oss først vise den nåværende grensen:

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

Dette vil vise oss noe sånt som dette:

+ ----------------- + ------- + | Variabel_navn | Verdi | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +

Med andre ord er den nåværende grensen 151 tilkoblinger, vel, la oss heve den til 500 ved hjelp av et spørsmål:

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

Klar!

Problemet på denne måten er at når tjenesten startes på nytt, går denne konfigurasjonen tapt.

For å gjøre opp for denne detaljen, kan du lage et bash-skript som sjekker hver X-mengde, eller til og med legge til linjen i start- eller omstartblokken til daemonen 

Men hvorfor vil jeg da vite dette andre alternativet? … vel, det var det jeg sa. Men for en måned siden ignorerte en Ubuntu-server metode nr. 2, så... i ekstreme tilfeller av dumt OS har vi dette andre alternativet som fungerer like bra 