PHP: удаленные подключения к MySQL очень медленные
У меня есть два сервера, оба из которых выполняются CentOS 5.7 и cPanel-CURRENT. Один из них - x86, а другой - x64. Оба используют Apache 2.2.21, PHP 5.3.8 и MySQL 5.1.
Если я запрашиваю локальную базу данных на любом из серверов, результаты будут возвращены мгновенно. В этом случае возвращается несколько тысяч результатов. Однако выполнение одного и того же запроса с одного сервера на другой, и запрос занимает более 10 секунд.
Если я использую MySQL Workbench 5.2 для запроса удаленной базы данных с моей рабочей станции с тем же запросом, она завершается менее чем за секунду, что заставляет меня думать, что проблема с PHP или чем-то еще связана с сервером.
Кто-нибудь еще сталкивался с этой проблемой и знал, как ее решить? Любая помощь будет принята с благодарностью.
Ответы
Ответ 1
Предположим, что это могут быть проблемы с DNS, и вы можете использовать параметр -skip-name-resolve в my.cnf, или вы можете использовать только IP-адреса в таблицах грантов MySQL.
Второе предположение: это может быть проблема с уровнем безопасности, и я предлагаю временно отключить selinux или брандмауэр и снова запустить тест.
Ответ 2
У меня была эта точная проблема с приложением PHP/MySQL.
Просто хотел поделиться тем, что добавление "skip-name-resolve" в my.ini исправил его для меня. Я был немного смущен этим, так как мое приложение на рабочем столе 1 обращалось к рабочему столу 2 (mysql) с использованием IP-адреса. Я перехожу между двумя рабочими столами Windows 7.