我有一臺較舊的Synology設備(DSM v5.2-5967 Update 4,phpmyadmin v4.4.7-0103),它有一些本地網站,可以運行php頁面。我想將它遷移到我的新Synology設備(DSM V6.1.3-15152 Update 1,phpmyadmin v4.6.6-0172)。當從Package Center安裝新版本的phpmyadmin時,我需要下載Maria DB和PHP 5.6,但這不是DSM 5的要求。此外,DSM 6現在支持Web Station中的選項,我可以在其中配置http後端服務器和PHP版本。我將它設置爲5.6,與phpmyadmin一起安裝。如何使用Synology從php頁面連接到mysql服務器?
這裏是爲我所用的舊DSM工作代碼:
<?php
define ("DB_HOST", "localhost"); // Your database host name
define ("DB_USER", "root"); // Your database user
define ("DB_PASS", ""); // Your database password
define ("DB_NAME", "groceries"); // Your database name
$link = mysql_connect(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = mysql_select_db(DB_NAME, $link) or die("Couldn't select database");
?>
此代碼現在返回「無法建立連接」。其他網站不處理此返回500服務器錯誤。我嘗試用Synology設備的名稱替換localhost,但無濟於事。 PHP文件本身工作正常,但我無法連接到數據庫。我無法在任何地方看到Maria DB的控制面板,因此我不知道是否缺少任何設置。這是一個新的設備,有一個新的安裝包,所以我甚至沒有改變root密碼。
我甚至嘗試從Package Center安裝Apache 2.4,並將其設置爲新Web Station設置中的後端服務器,並重新啓動NAS。但是phpyadmin仍然顯示「nginx/1.11.10」作爲Web服務器。作爲參考,我的舊NAS在Web服務器下顯示Apache,但我沒有安裝Apache軟件包。
我不知所措。有沒有人試圖使用Synology DSM 6連接到一個mysql數據庫,並活着講述故事?
**警告* *:您正在使用[** **過時的**數據庫API](http://stackoverflow.com/q/12859942/19068),它已從**的最新版本中**完全刪除。你應該使用[現代替換](http://php.net/manual/en/mysqlinfo.api.choosing.php)。 – Quentin
雖然你不應該真的在使用mysql_ *函數,正如其他人已經注意到的那樣,你應該至少在失敗時暫時打印出「mysql_error()」的值:這將是連接失敗時的實際錯誤消息,可能會說明發生了什麼。 (另外,phpMyAdmin的工作?如果是這樣,你用什麼用戶名,主機和密碼連接到那裏?服務器詳細信息應位於數據庫服務器框中,位於phpMyAdmin主屏幕的右上角......) –
謝謝,並且我不知道mysql_ *函數已被棄用的道歉。我能夠連接到MySQL數據庫,但它看起來像在端口3306上的PHP,而在3307上的MySQL。因此,我必須使用「本地主機:3307」作爲DB_HOST而不是普通的舊「本地主機」。我如何強制mysql移動到3306或PHP到3307? – Freakishly