Avatar billede danic Nybegynder
22. april 2002 - 20:28 Der er 12 kommentarer og
3 løsninger

Åbne/Lukke forbindelse til MySql database

Hvad sker der på en MySQL server hvis man åbner en masse forbindelser til en given database, men glemmer at lukke dem igen???

Har den kun en session pr. bruger session?
Eller åbner den en ny forbindelse ved hver mysql_query?
Hvor mange sessioner skal MySQL have åben på en gang?
Hvor lang tid går der før en session timer ud?
Avatar billede brideonline.dk Nybegynder
22. april 2002 - 20:31 #1
1: Uendelig - Din webhotels udbyder har sikkert sat et maks
2: Ja, den åbner en ny mysql, så snart den bliver bedt om det i en f.eks. en PHP fil
3: MANGE !!!!!!!!
4: Normalt 30sek, men det kan du selv lave om
Avatar billede brideonline.dk Nybegynder
22. april 2002 - 20:33 #2
PS: Dit script "glemmer" ikke at lukke databasen, da det ernoget du selv styrer!!!
Avatar billede danic Nybegynder
22. april 2002 - 20:43 #3
Hvis jeg laver 4 mysql_query og kun lukker forbindelsen efter den sidste hvad sker der så?
Avatar billede tipsen Nybegynder
22. april 2002 - 20:48 #4
Du kan sagtens lave mange queries på samme forbindelse - lige så vel som du kun har åbnet den en gang, skal du også kun lukke den en gang!
Avatar billede danic Nybegynder
22. april 2002 - 21:02 #5
brideonline.dk> du skriver i punkt 2. at den åbner en ny forbindelse ved hver mysql_query?

tipsen> Lige for at slå det fast => det vil sige at jeg kan nøjes med at åbne i starten af mit script, og lukke forbindelsen igen til sidst i mit script, selv om jeg laver en masse undervejs?
Avatar billede tipsen Nybegynder
22. april 2002 - 21:09 #6
korrekt - hvis du vel at mærke benytter samme db til alle queries!
Avatar billede danic Nybegynder
22. april 2002 - 21:11 #7
tipsen> OK - Tipsen ved du hvad der sker rent IP messigt når man laver en forbindelse? binder en socket på ens IP-adresse, så den kan holde styr på hvem der er hvem a'la FTP?
Avatar billede tipsen Nybegynder
22. april 2002 - 21:20 #8
Jeg tror den er ligeglad med hvem man er fordi det er jo http-serveren som sender en forespørgsel til eks. php om at behandle en side og generere færdig html.

PHP sender så muligvis nogle mysql forespørgsler afsted - dvs. for mysql ser det ud som om forespørslen kommer fra php som måske ligger på samme server...

-hvis jeg har forstået det rigtigt...

-men den må vel egentlig lave en form for åben connection mens scriptet udføres...
Avatar billede lundsfryd Nybegynder
22. april 2002 - 22:03 #9
1: Hvad mener du helt præcist med det?
2: Nej. Den åbner en forbindelse hver gang, man forbinder/connecter til den, ikke ved hver query (og lige for at imødekomme en tilsyneladende udbredt misforståelse: Det er ikke en database som sådan, man forbinder til - det er en server (der kan indeholde mange databaser))
3: Lige så mange som man har angivet under "max_connections" i my.cnf (default 100)
4: Der er et default connect timeout på 5 sekunder og der er så vidt jeg ved 8 timer (!) på din session/connection
Avatar billede lundsfryd Nybegynder
22. april 2002 - 22:06 #10
ad. 4) De 30 sekunders timeout, brideonline.dk nævner er AFAIK i tilfælde af, at en query tager mere end 30 sek. at udføre.
Avatar billede danic Nybegynder
23. april 2002 - 08:40 #11
Super! så fik jeg det på plads.

tipsen & lundsfryd> i mår gerne komme med et svar
Avatar billede tipsen Nybegynder
23. april 2002 - 10:03 #12
Tada...
Avatar billede ztyxx Nybegynder
23. april 2002 - 10:10 #13
ifølge php.net er det for det meste ikke nødvendigt at bruge mysql_close(), da der automatisk lukkes efter eksekvering af et (php)script, http://www.php.net/manual/en/function.mysql-close.php , men man bør nok, som god skik bruge den alligevel :-)
Avatar billede lundsfryd Nybegynder
23. april 2002 - 13:21 #14
ztyxx >> Det kommer an på, om du har koblet dig på basen med mysql_connect() eller mysql_pconnect() (i øvrigt har det jo mere relevans i forhold til PHP end i forhold til MySQL).
Avatar billede ztyxx Nybegynder
23. april 2002 - 13:29 #15
lundsfryd> helt enig, syntes bare lige at jeg ville nævne det :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester