Når antallet af MySQL-klienter overstiger det maksimale antal forbindelser, vil drivere i forskellige sprog rapportere fejlen "For mange forbindelser".
Java-programfejl:
Datakilde afviste etablering af forbindelse, besked fra server: "For mange forbindelser"
.NET Core-programfejl:
For mange forbindelser Eller sådan fejl ved forbindelse: Timeout udløbet. Timeout-perioden udløb, før man fik en forbindelse fra puljen. Dette kan være sket, fordi alle poolforbindelser var i brug, og den maksimale poolstørrelse var nået.
Brug følgende kommando for at se det maksimale antal forbindelser og det aktuelle antal forbindelser:
midlertidigt fastsætte det maksimale antal forbindelser,Du behøver ikke genstarte MySQL-serveren, men indstillingen bliver ugyldig, når du genstarter MySQL-tjenesten:
Du kan permanent sætte det maksimale antal forbindelser til databasen i /etc/my.cnf:
Når vi sætter det maksimale antal forbindelser og tester med et .NET-program, vil fejlen stadig være som følger:
fejl ved forbindelse: Timeout udløbet. Timeout-perioden udløb, før man fik en forbindelse fra puljen. Dette kan være sket, fordi alle poolforbindelser var i brug, og den maksimale poolstørrelse var nået. Dette skyldes, at .NET-klienter bruger trådpools som standard, og den maksimale grænse for thread pools er standard: 100
Hyperlink-login er synlig.
ViLuk pooling-trådpoolen, uden brug af trådpuljen er der ingen grænse, testen foregår samtidig med 500 tråde på samme tid, og der rapporteres ingen fejl, som vist i figuren nedenfor:
.NET/C# testkoden ser sådan ud:
(Slut)
|