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

Introduksjon til MySQL-feilen: For mange tilkoblinger

Når du har en webapplikasjon (nettsted, blogg, forum osv.) som opplever høy etterspørsel, noe som betyr at et stort antall brukere besøker den, fører dette til økt forbruk av serverressurser. Hvis denne webapplikasjonen bruker en MySQL-database og spørringene er svært mange ( på grunn av dårlig nettstedsprogrammering eller et høyt antall brukere ), kan MySQL 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, men ved å bruke en MySQL-spørring.

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 


Legg til som foretrukket kilde i Google