2011-11-22 28 views
11

Tengo dos servidores, ambos ejecutando CentOS 5.7 y cPanel-CURRENT. Uno es x86 y el otro es x64. Ambos usan Apache 2.2.21, PHP 5.3.8 y MySQL 5.1.PHP: Conexiones remotas de MySQL muy lentas

Si consulto la base de datos local en cualquiera de los servidores, los resultados se devuelven al instante. En este caso, se devuelven unos miles de resultados. Sin embargo, ejecuta la misma consulta de un servidor a otro y la consulta tarda más de 10 segundos en completarse.

Si uso MySQL Workbench 5.2 para consultar la base de datos remota desde mi estación de trabajo con la misma consulta, se completa en menos de un segundo, lo que me hace pensar que hay un problema con PHP u otra cosa relacionada con el servidor.

¿Alguien más ha tenido este problema antes y sabe cómo resolverlo? Cualquier ayuda sería muy apreciada.

+0

try mysql_pconnect() http://www.php.net/manual/en/function.mysql-pconnect.php mayb ayudará – YamahaSY

+0

El uso de conexiones persistentes no ayuda. La consulta aún tarda el mismo tiempo en completarse. – Reado

+0

¿Puede ser que sus bases de datos difieran un poco? P.ej. no todos los índices en la máquina local existen en el servidor remoto. Php funciona bien con el servidor remoto mysql, probablemente haya otro problema. ¿Qué pasa con la conexión de red? 'Ping' servidor remoto. – Oroboros102

Respuesta

11

Primera conjetura: puede tratarse de un problema de DNS y puede usar la opción --skip-name-resolve en my.cnf o puede usar solo direcciones IP en las tablas de concesión de MySQL.

Segundo intento: podría haber un problema con el nivel de seguridad y sugiero desactivar temporalmente Selinux o el firewall y ejecutar la prueba nuevamente.

+0

Estoy usando la dirección IP para conectarme al servidor remoto en PHP y MySQL Workbench. También el "--skip-name-resolve" está en el archivo de configuración y el servidor se ha reiniciado. Finalmente, selinux está desactivado (uno de los requisitos para ejecutar cPanel) y traté de desactivar el firewall, pero fue en vano. – Reado

+0

y notó alguna mejora? ¿Puede decirme qué cantidad de tiempo lleva la función de conexión? Me pregunto qué es exactamente el consumo de tiempo que no está claro de su pregunta. –

+3

En el archivo de configuración, debe ser "skip-name-resolve" no "--skip-name-resolve" - ​​los guiones precedentes son solo si se usa como parámetro cuando inicia el servicio mysqld. –

4

Tuve este problema exacto con una aplicación PHP/MySQL.

Solo quería compartir que agregar "skip-name-resolve" a my.ini lo arregló por mí. Estaba un poco confundido por esto ya que mi aplicación en el escritorio 1 estaba accediendo al escritorio 2 (mysql) usando la dirección IP. Voy entre dos escritorios de Windows 7.

Cuestiones relacionadas