我最近在Windows家庭計算機上配置了一個MySQL服務器。此外,我還創建了一個使用0fees.net的網站 - 一個免費的託管服務提供商,該服務提供商提供了一個包括PHP支持,FTP文件託管,自己的MySQL服務器等各種服務的vista面板。到本地MySQL服務器的網站連接
網站,我已經創建了一個「登錄」PHP腳本,以便人們登錄到我的網頁。但是,我不想從在0fees.net上的cPanel上給予我的MySQL數據庫讀取數據,而是希望PHP登錄腳本直接從我在家用計算機上配置的MySQL服務器讀取。要做到這一點,我已經採取了多項措施:
1)使用MySQL服務器實例配置嚮導
在這種配置中配置MySQL的,我已經啓用了TCP/IP網絡上的3306端口(並啓用了防火牆例外該端口)並啓用了遠程機器的根訪問權限。
2)上的MySQL命令行的客戶端,我已經通過使用授予遠程訪問能力,以其他單位:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
3)我已經轉發端口3306到我的路由器(和已經使用的各種端口檢查器確認它是開放的)
4)我創建了名爲「login.php」的登錄腳本,它位於我的站點的.htdocs目錄中,並在我的網站主頁上處理HTML登錄表單。它嘗試(並失敗)連接到我的本地MySQL服務器。那PHP腳本的目的片段是:
$host="my_external_ip:3306"; // External IP of my computer and port to listen on
$username="root"; // Username specified in the GRANT command-line-client command
$password="password"; // Password specified in the GRANT command-line-client command
$db_name="logon"; // MySQL database name
$tbl_name="accounts"; // Table name within the database
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die(mysql_error());
mysql_select_db("$db_name")or die("cannot select DB");
當試圖連接到MySQL割斷,我得到一條錯誤消息:
Can't connect to MySQL server on 'my_external_ip' (4).
還應當指出的是,我成功能夠通過端口3306使用相同的外部IP地址,從其他網絡上的其他機器(使用Navicat進行測試)遠程連接到本地MySQL服務器。有關我的網站爲何無法連接的任何想法?
在此先感謝您的任何見解。
傳入流量那麼我可以告訴你,你的端口肯定是開並傾聽(不良想法張貼你的知識產權就像那樣)。 – 2011-06-14 20:30:21
此外,創建一個不同於超級用戶的用戶來自php的連接是一個很好的習慣......您應該爲您的php連接創建一個具有受限特權的新用戶 – Damp 2011-06-14 20:33:46
您的站點和本地站點之間是否存在代理? # – 2011-06-14 20:47:57