2011-11-22 321 views
11

我有兩臺運行CentOS 5.7和cPanel-CURRENT的服務器。一個是x86,另一個是x64。兩者都使用Apache 2.2.21,PHP 5.3.8和MySQL 5.1。PHP:遠程MySQL連接速度很慢

如果我查詢任何一臺服務器上的本地數據庫,結果會立即返回。在這個例子中,有幾千個結果正在返回。但是,從一臺服務器運行相同的查詢到另一臺服務器,查詢需要10多秒才能完成。

如果我使用MySQL Workbench 5.2從我的工作站使用相同查詢查詢遠程數據庫,它會在不到一秒鐘內完成,這讓我認爲PHP或其他服務器相關問題存在問題。

有沒有其他人遇到過這個問題,並知道如何解決它?任何幫助將不勝感激。

+0

嘗試mysql_pconnect()http://www.php.net/manual/en/function.mysql-pconnect.php mayb它將有幫助 – YamahaSY

+0

使用持久連接不會有幫助。該查詢仍然需要完成相同的時間。 – Reado

+0

可能你的數據庫有點不同?例如。並非本地機器上的所有索引都存在於遠程服務器上PHP與遠程MySQL服務器很好,可能還有其他一些問題。網絡連接怎麼樣? 'Ping'遠程服務器。 – Oroboros102

回答

11

首先猜測:它可能是一個DNS問題,您可能會在my.cnf中使用--skip-name-resolve選項,或者您可能只使用MySQL授權表中的IP地址。

第二個猜測:它可能是安全級別的問題,我建議暫時禁用selinux或防火牆並再次運行測試。

+0

我正在使用IP地址連接到PHP和MySQL Workbench中的遠程服務器。此外,「--skip-name-resolve」位於配置文件中,並且服務器已重新啓動。最後,selinux被禁用(運行cPanel的要求之一),我試圖禁用防火牆,但無濟於事。 – Reado

+0

,你發現有什麼改進?你能告訴我連接功能需要多長時間嗎?我想知道什麼是耗費時間,你的問題並不清楚。 –

+3

在配置文件中,它應該是「skip-name-resolve」而不是「--skip-name-resolve」 - 前面的破折號只有在啓​​動mysqld服務時用作參數。 –

4

我有一個PHP/MySQL應用程序的確切問題。

只是想分享給my.ini添加「skip-name-resolve」爲我修復它。我有點困惑,因爲我的桌面1上的應用程序使用IP地址訪問桌面2(mysql)。我將在兩個Windows 7桌面之間進行。