22. april 2002 - 20:28Der 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?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
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
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?
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?
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...
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
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 :-)
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).
lundsfryd> helt enig, syntes bare lige at jeg ville nævne det :-)
Synes godt om
Ny brugerNybegynder
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.