WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Can't connect to MySQL server on '192.168.0.2' (1) (https://www.wn.se/forum/showthread.php?t=35000)

radioaktivitet 2009-02-08 08:33

I 99,999% av fallen fungerar det bra att ansluta till min MySql server. Men sporadiskt så får jag följande fel

"Can't connect to MySQL server on '192.168.0.2' (1)"

mysql_errno() returnerar "2003"

Jag kör FreeBSD. Relativt nya versioner av både FreeBSD och MySQL. Systemet är inte särskilt lastat.

Hur gör jag för att lista ur var problemet ligger?

Jag är tacksam för all hjälp jag kan få!

najk 2009-02-08 08:36

Kolla aktiva processer på mysqlservern med "SHOW PROCESSLIST", kika även på värdet för "max connections".

Jonas 2009-02-09 12:26

Som najk, kolla även hur många anslutningar varje thread kan hantera.

thread_cache_size skall du kika på.

Ett tips generellt är att titta igenom hela din my.cnf fil.

Där hittar du också max_connections


Hur är anslutningen till maskinen? Alltså från webserver till mysqlserver? Är där ingen trafik? Har du låg timeout i anslutningen?

gsoc 2009-02-09 13:03

Det var en gammal bugg i php som såg ut sådär förut, hade något att göra med dnsuppslagen, kolla om det hjälper att använda ipadress vid anslutning istället...

radioaktivitet 2009-02-09 14:23

När jag kikar i processlistan så finns där inget särskilt. Men det intressanta är ju att se processlistan precis i samma ögonblick som jag får felet.

Men. Efterssom jag inte får någon connection så kan jag inte fråga "show processlist" just då. Moment 22. Eller?

max_connections är 100
thread_cache_size är 0 (verkar vara default)


Citat:

Hur är anslutningen till maskinen? Alltså från webserver till mysqlserver? Är där ingen trafik? Har du låg timeout i anslutningen?
Det är mycket trafik. Vet ej hur man kollar timeout.

Citat:

Det var en gammal bugg i php som såg ut sådär förut, hade något att göra med dnsuppslagen, kolla om det hjälper att använda ipadress vid anslutning istället...
Jag använder "192.168.0.2" vid anslutningen. Menar du att jag skall använda någonting annat?

Jonas 2009-02-09 14:38

Citat:

Originally posted by radioaktivitet@Feb 9 2009, 15:23
När jag kikar i processlistan så finns där inget särskilt. Men det intressanta är ju att se processlistan precis i samma ögonblick som jag får felet.
Men. Efterssom jag inte får någon connection så kan jag inte fråga show processlist just då. Moment 22. Eller?
max_connections är 100
thread_cache_size är 0 (verkar vara default)

thread_cache_size innehåller en cache med föregående anslutningar, alltså anslutningen sker snabbare om denna är aktiverad.

http://www.sitebuddy.com/MySQL/thread_cach...ead_concurrency
Han förklarar hur du skall räkna ut värdet här.

Citat:

Det är mycket trafik. Vet ej hur man kollar timeout.
Timeout är ett argument du ger i mysql_connect()

jonny 2009-02-09 14:52

Du har ingen logg som säger mer då?

radioaktivitet 2009-02-09 14:54

Citat:

Ursprungligen postat av Jonas
Citat:

Ursprungligen postat av radioaktivitet
När jag kikar i processlistan så finns där inget särskilt. Men det intressanta är ju att se processlistan precis i samma ögonblick som jag får felet.
Men. Efterssom jag inte får någon connection så kan jag inte fråga show processlist just då. Moment 22. Eller?
max_connections är 100
thread_cache_size är 0 (verkar vara default)


thread_cache_size innehåller en cache med föregående anslutningar, alltså anslutningen sker snabbare om denna är aktiverad.

http://www.sitebuddy.com/MySQL/thread_cach...ead_concurrency
Han förklarar hur du skall räkna ut värdet här.

Citat:

Det är mycket trafik. Vet ej hur man kollar timeout.


Timeout är ett argument du ger i mysql_connect()

Threads_created/Connections blir i mitt fall 6355823 / 6490174 = 0,979299.
Är inte säker på hur jag skall tolka det.
Max_used_connections är 101. Bör jag sätta thread_cache_size till 101? Hur vet jag om min burk pallar det?

Ang. thread_concurrency så har jag inte den variabeln ö.h.t. Kör mysql 5.0.51a. Kanske är den variabeln borttagen?

Ang. timeout. så säger dokumentationen

Citat:

resource mysql_connect ([ string $server=ini_get("mysql.default_host") [, string $username=ini_get("mysql.default_user") [, string $password=ini_get("mysql.default_password") [, bool $new_link=false [, int $client_flags=0 ]]]]] )
Vilket värde är timeout? Idag anger jag bara server, username och password. Resten är default. Vad rekommenderar ni?

radioaktivitet 2009-02-10 15:40

Jag har fortfarande inte kommit så mycket längre än min senaste inlägg.

Man kan tycka att det borde finnas något verktyg där man kan mata in sina värden, och som spottar ur sig förslag på vilka variabler man skall ändra.

najk 2009-02-10 15:57

På MySQL servern skulle du kunna installera mtop och kolla noga när andra inte kan ansluta, jag gissar på att du har fler anslutningar än servern tillåter (eftersom du har max_used_connections är 101, medans max_connections är 100).
På webbservern kan du köra ab och testa belasta din sida samtidigt som du kör mtop..


Alla tider är GMT +2. Klockan är nu 11:07.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson