Sto usando MySQL 5.0 per un sito che è ospitato da GoDaddy (linux).Errore MySQL "Troppe connessioni"
Stavo facendo alcuni test sulla mia app web, e improvvisamente ho notato che le pagine si stavano rinfrescando molto lentamente. Alla fine, dopo una lunga attesa, sono arrivato a una pagina che diceva qualcosa sulla falsariga di "MySQL Error, Too many connections ...", e indicava il mio file config.php che si collega al database.
Mi sono appena collegato al database, nessun altro utente. In ciascuna delle mie pagine, includo il file config.php in alto e chiudo la connessione mysql alla fine della pagina. Ci possono essere diverse domande in mezzo. Temo di non chiudere abbastanza connessioni mysql (mysql_close()).
Tuttavia, quando provo a chiuderli dopo aver eseguito una query, ricevo errori di connessione sulla pagina. Le mie pagine sono PHP e HTML. Quando provo a chiudere una query, sembra che il prossimo non si connetterà. Dovrei includere nuovamente config.php dopo la chiusura per connettermi?
Questo errore mi ha spaventato perché in 2 settimane circa 84 persone hanno iniziato a utilizzare questa applicazione web.
Grazie.
EDIT:
Ecco alcuni pseudo-codice della mia pagina:
require_once('../scripts/config.php');
<?php
mysql_query..
if(this button is pressed){
mysql_query...
}
if(this button is pressed){
mysql_query...
}
if(this button is pressed){
mysql_query...
}
?>
some html..
..
..
..
..
<?php
another mysql_query...
?>
some more html..
..
..
<?php mysql_close(); ?>
ho pensato che in questo modo, ogni volta che la pagina si apre, il collegamento si apre, e poi il collegamento si chiude quando la la pagina è stata caricata. Poi, il collegamento si apre di nuovo quando qualcuno fa clic su un pulsante sulla pagina, e così via ...
EDIT:
Okay, Ho appena parlato al telefono con GoDaddy. Apparentemente, con il mio pacchetto Economy, sono limitato a 50 connessioni alla volta. Mentre il mio problema si è verificato oggi solo con l'accesso al sito, mi hanno detto che stavano avendo alcuni problemi con il server in precedenza. Tuttavia, visto che avrò 84 utenti per la mia app Web, dovrei probabilmente passare a "Deluxe", che consente 100 connessioni alla volta. In un dato giorno, potrebbero esserci circa 30 utenti che accedono al mio sito alla volta, quindi penso che il 100 sarebbe una scommessa più sicura. Siete d'accordo?
Incolla po 'di codice per favore. – Dirk
Può sembrare strano, ma prova a mettere un qualche tipo di contatore sul tuo metodo di connessione per vedere se è DAVVERO chiamato solo una volta per pagina. Ho avuto un problema simile in cui stavo creando una nuova connessione per ogni query senza rendermene conto. Potrebbe valere la pena di un colpo. –
@Mike B ottimo suggerimento, lo proverò sicuramente. – littleK