2010-08-19 163 views
4

我需要連接到遠程MySQL數據庫,並已創建以下連接代碼:無法連接到MySQL服務器的ip地址(10061)

<?php 
/* Set Variables */ 
$host="myipaddress"; 
$db="mydbname"; 
$username="dbuser"; 
$pass="mypass"; 

/* Attempt to connect */ 
$mysqli=new mysqli($host,$username,$pass,$db); 
if (mysqli_connect_error()){ 
die('Connect Error (' . mysqli_connect_errno() . ') ' 
. mysqli_connect_error()); 
echo 'Success... ' . $mysqli->host_info . "\n"; 

$mysqli->close(); 

} 
?> 

爲了安全起見,我沒有提供實際變量值。當我在我的開發系統上運行時,我收到了

Connect Error (2003) Can't connect to MySQL server on 'myipaddress' (10061) 

我的PHP有點生疏,有人可以確定我的代碼有問題嗎?請注意,dbuser對數據庫名稱集的選擇,插入和更新權限作爲變量。

感謝, 希德

編輯 我修改了my.cnf文件並重新啓動mysql的。我現在收到拒絕用戶'dbuser'@'mycurrenthostname'(使用密碼YES)的訪問權限。當我從命令行使用mysql -u dbuser -p時,我可以登錄。我授予插入,更新並選擇帶主機'%'的dbuser,以便dbuser可以從任何地方連接。

我已閱讀關於此錯誤的MySQL參考指南,但仍然卡住。我的代碼有問題,現在my.cnf已經修復了嗎?

+0

你確定權限的設置,允許你連接? – Galen 2010-08-19 05:08:03

+0

是的,我授予dbuser權限並在之後執行了刷新權限。 – SidC 2010-08-19 05:33:50

+0

my.cnf中包含: #跳過網絡 #使-命名管道 跳過InnoDB的 最大的連接= 30 綁定地址127.0.0.1 =' – SidC 2010-08-19 05:39:07

回答

13

檢查您的防火牆允許通過端口3306

連接檢查MySQL配置參數bind-addressmy.cnf,以確保它允許遠程連接。

有信息和故障排除技巧在這裏:

http://dev.mysql.com/doc/refman/5.1/en/can-not-connect-to-server.html

+1

感謝您的鏈接。 mysqld正在運行,但不能執行該文章中的前幾個mysqladmin命令。 mysqladmin變量和mysqladmin版本都使用密碼NO返回對用戶root @ localhost的拒絕訪問。 my.cnf文件位於哪裏,我應該如何修改bind-address?謝謝:) – SidC 2010-08-19 05:32:50

3

根據MySql文檔,錯誤(2003)無法連接到服務器上的MySQL服務器(10061)表示網絡連接已被拒絕。您應該檢查是否有MySQL服務器在運行,是否啓用了網絡連接,以及您指定的網絡端口是在服務器上配置的網絡端口。

我不熟悉php,但問題可能不在您的代碼中。

+0

如果您沒有權限創建或訪問innoDb數據文件,則該錯誤也可能出現在Windows上。 – Dubas 2010-08-20 06:32:26

相關問題