2011-11-22 16 views
11

Ho due server, entrambi in esecuzione CentOS 5.7 e cPanel-CURRENT. Uno è x86 e l'altro è x64. Entrambi utilizzano Apache 2.2.21, PHP 5.3.8 e MySQL 5.1.PHP: connessioni remote MySQL molto lente

Se interrogo il database locale su uno qualsiasi dei server, i risultati vengono restituiti immediatamente. In questo caso vengono restituiti alcuni migliaia di risultati. Tuttavia, è in esecuzione la stessa query da un server a un altro e la query impiega più di 10 secondi per essere completata.

Se utilizzo MySQL Workbench 5.2 per interrogare il database remoto dalla mia stazione di lavoro con la stessa query, viene completato in meno di un secondo, il che mi fa pensare che ci sia un problema con PHP o qualcos'altro collegato al server.

Qualcun altro ha riscontrato questo problema prima e sa come risolverlo? Qualsiasi aiuto sarebbe molto apprezzato.

+0

provare mysql_pconnect() http://www.php.net/manual/en/function.mysql-pconnect.php mayb it help – YamahaSY

+0

L'utilizzo di connessioni persistenti non aiuta. La query richiede ancora lo stesso tempo per essere completata. – Reado

+0

I tuoi database potrebbero differire un po '? Per esempio. non tutti gli indici sul computer locale esistono sul server remoto. Php funziona bene con il server mysql remoto, probabilmente c'è qualche altro problema. Che mi dici della connessione di rete? Server remoto 'Ping'. – Oroboros102

risposta

11

Prima ipotesi: potrebbe trattarsi di problemi DNS e si può usare l'opzione --skip-name-resolve in my.cnf oppure si possono usare solo indirizzi IP nelle tabelle di concessione MySQL.

Seconda ipotesi: potrebbe essere un problema con il livello di sicurezza e suggerisco di disabilitare temporaneamente selinux o il firewall ed eseguire nuovamente il test.

+0

Sto usando l'indirizzo IP per connettermi al server remoto sia in PHP che in MySQL Workbench. Anche "--skip-name-resolve" si trova nel file di configurazione e il server è stato riavviato. Infine selinux è disabilitato (uno dei requisiti per l'esecuzione di cPanel) e ho provato a disabilitare il firewall, ma inutilmente. – Reado

+0

e hai notato qualche miglioramento? Per favore, dimmi quanto tempo impiega la funzione di connessione. Mi chiedo cosa sia esattamente il tempo che non è in realtà chiaro dalla tua domanda. –

+3

Nel file di configurazione, dovrebbe essere "skip-name-resolve" non "--skip-name-resolve" - ​​i trattini precedenti sono solo se è usato come parametro quando si avvia il servizio mysqld. –

4

Ho avuto questo problema con un'applicazione PHP/MySQL.

Volevo solo condividere che aggiungendo "skip-name-resolve" a my.ini è stato corretto per me. Ero un po 'confuso da questo dato che la mia applicazione sul desktop 1 stava accedendo al desktop 2 (mysql) usando l'indirizzo IP. Sto andando tra due desktop Windows 7.

Problemi correlati