Timeout

通過 PHP 導入數據庫時出現 500 內部伺服器

  • September 22, 2009

在查看執行以下腳本的 php 頁面後,我的 Web 瀏覽器中立即出現 500 內部伺服器錯誤:

exec(“mysql -h db.server.com -u myuser -pmypass db < db.sql”);

mysql 命令執行需要很長時間,因為 db.sql 是一個非常大的文件,將其發送到外部數據庫伺服器需要時間。當命令執行時,我的共享主機服務上的所有其他 php 頁面都會產生 500 Internal Server 錯誤。

有沒有辦法擺脫 500 內部伺服器錯誤並讓我的其他 php 頁面執行?有沒有更好的方法來導入我的 sql 文件?

讓 php 程序將 SQL 文件保存到遠端機器上的臨時位置,並有一個 cronjob 執行並在該位置查找文件並將它們吸收到 MySQL 中。

還要設置 php 腳本以在文件開始上傳時在同一目錄中創建一個文件,這樣您就可以編寫您的 cronjob 以忽略它,以免在上傳時嘗試讀取它。

您可以從 shell 而不是網頁執行命令嗎?

引用自:https://serverfault.com/questions/67539