Just nu i M3-nätverket
Gå till innehåll

MySQL databas problem?


Ored

Rekommendera Poster

Hej,

 

Jag har en databas på en webbsida. Nu har jag titt som tätt på senare tid fått problem med databasen. Felen är bl.a

Warning: mysql_connect() [function.mysql-connect]: Too many connections in

Warning: mysql_select_db() [function.mysql-select-db]: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) in

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in.

Är inte så bra på detta men jag undrar om någon har någon bra förklaring på detta och ev lösning? Databasen innehåller 7 tabeller och endast text. Hur gör jag enklast för att snabba upp databasen t.ex genom att indexera den? Använder myPHPAdmin för att redigera i databasen.

 

/Ored

Länk till kommentar
Dela på andra webbplatser

Du måste se till att stänga dina anslutningar mot databasen efter varje gång du gjort något, eller iaf efter varje sidladdning.

Länk till kommentar
Dela på andra webbplatser

Jag trodde att jag stängt alla anslutningar till databasen i PHP koden. Har avslutat alla sidor med koden nedan.

 

<? mysql_close($sqlc); ?>

 

/Ored

Länk till kommentar
Dela på andra webbplatser

ser rätt ut. 

Stänger du anslutningarna överallt?

Har du en sida med extra anslutningar?

 

Kontrollera och dubbelkontrollera.

Länk till kommentar
Dela på andra webbplatser

Inte vad jag vet. Allt går via index.php sidan där databasen stängs ned som sista raden i koden. Får kolla noga på koden ytterligare en gång om jag har missat stänga databasen någon stans. Det är först på senare tid problemet uppstått och jag har inte gjort några ändringar i koden tiden innan felen börjat uppstå. Kan det vara något annat?

 

/Ored

Länk till kommentar
Dela på andra webbplatser

  • 4 veckor senare...

Vi hade nog behövt se din kod för att kunna framkalla felet själva och ge dig ett säkrare svar. Min första tanke var precis som Jonas__Bs att någon anslutning inte stängs. Kan mycket väl börja krångla "från ingenstans" om t.ex. koden ligger hos ett webbhotell som uppdaterat sina servrar/ändrat en inställning, eller om den flyttats till en petigare eller mindre kraftfull server.

 

mysql_close() är vanligtvis inte nödvändig då kopplingen ändå dödas när all kod körts klart. Men ifall rätt fel har pekats ut, kan du prova att lagra allt i variabler (anslutningar och större värden) och ge dem värdet null så fort de inte längre behövs. Detta för att de inte ska ligga och ta upp RAM-minne i onödan.

 

Till slut vill jag hänvisa till exempelvis http://se2.php.net/mysql_connect och http://se2.php.net/mysql_close:

 

This extension is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used.

 

MySQLi och PDO är två nyare och allmänt säkrare sätt att koppla upp sig mot databaser. Själv använder jag mig utav PDO, och det är faktiskt inte mycket krångligare alls.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...