Introduktion till MySQL-felet: För många anslutningar
När du har en webbapplikation (webbplats, blogg, forum etc.) som upplever hög efterfrågan, vilket innebär att ett stort antal användare besöker den, leder detta till ökad serverresursförbrukning. Om webbapplikationen använder en MySQL-databas och frågorna är mycket många ( på grund av dålig webbplatsprogrammering eller ett stort antal användare ) kan MySQL visa detta fel:
mysqli_connect(): (HY000/1040): Too many connections
Vad betyder MySQL: Too Many Connections-felet?
Det betyder att för många förfrågningar kommer in i MySQL, mer än det kan acceptera, mer än vad det kan stå i kö eller vänta.
Hur löser man det?
Enkelt, vi måste öka den maximala gränsen för förfrågningar (anslutningar) som MySQL stöder.
Jag ger dig två alternativ för att lösa detta problem:
1. Vi redigerar filen /etc/mysql/my.cfg:
nano /etc/mysql/my.cfg
I den lägger vi följande under där det står [mysql]:
max_connections = 500 max_user_connections = 500
Detta ökar det maximala antalet anslutningar från 100 (vilket är standard) till 500.
Vi sparar och avslutar, sedan startar vi om MySQL-tjänsten och det är det. Denna förändring är permanent.
2. Ett annat sätt att lösa detta problem är att ändra maxgränsen, men med hjälp av en MySQL-fråga.
Låt oss först visa den nuvarande gränsen:
mysql --user="root" --password="PASSWORD" --execute='SHOW VARIABLES LIKE "max_connections";'
Detta kommer att visa oss ungefär så här:
+ ----------------- + ------- + | Variabel_namn | Värde | + ----------------- + ------- + | max_connections | 151 | + ----------------- + ------- +
Med andra ord är den nuvarande gränsen 151 anslutningar, ja, låt oss höja den till 500 med hjälp av en fråga:
mysql --user="root" --password="PASSWORD" --execute='SET GLOBAL max_connections = 500;'
Redo!
Problemet på det här sättet är att när tjänsten startas om förloras denna konfiguration.
För att kompensera för den här detaljen kan du skapa ett bash-skript som kontrollerar varje X gånger, eller till och med lägga till raden i start- eller omstartsblocket för demonen
Men varför vill jag då veta det här andra alternativet? … ja, det var vad jag sa. Men för en månad sedan ignorerade en Ubuntu-server metod nr 2, så... i extrema fall av dumma OS har vi det här andra alternativet som fungerar lika bra