2010-08-20 138 views
1

早安,MySQL錯誤1045次拒絕訪問

我寫了下面的代碼塊我的本地Windows 7 PC上,並試圖運行它。不幸的是,我收到:

Connect Error (1045) Access denied for user 'dbuser'@'myhost(using password: YES) 

我已授予dbuser的插入,選擇,更新,並使用本地主機都和%這個數據庫模式執行。我可以從服務器上的命令行使用mysql -u dbuser -p。

下面的代碼塊:

<?php 
/* Set Variables */ 
$host="serveripaddress"; 
$db="dbname"; 
$username="dbuser"; 
$pass="pass"; 

/* 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(); 

} 
?> 

我難以理解上面的代碼塊是否是導致我的錯誤,或是否有需要在服務器上做了什麼。任何人都可以提出一些調查領域嗎?

感謝, 希德

+0

Doublechecked host? – 2010-08-20 16:33:29

+0

是的。我重置dbuser密碼,無濟於事。在我的$ host變量中使用服務器名稱而不是IP地址會更好嗎? – SidC 2010-08-20 16:49:09

回答

1

確保,如果您使用的是在MySQL中GRANT一個主機名,MySQL能夠妥善解決主機名您從連接的IP。

舉例來說,如果你這樣做

GRANT blah ON *.* to [email protected] 

你要記住,MySQL將看不到「某」,它會看到一個IP地址。它必須進行反向查找才能獲得主機名,如果IP沒有反向映射,或者映射到完全不同的東西,MySQL將不會授予訪問權限。

除非您可以保證反向映射穩定,否則最好在MySQL中使用遠程訪問帳戶的IP地址。

+0

我的授權聲明是'dbuser'@'%'我的意圖是dbuser將是Web應用程序用來執行SQL命令的服務帳戶。因此,我不想限制自己任何特定的主機名稱。這是正確的方法嗎? – SidC 2010-08-20 17:27:02

+0

這會讓該帳戶對任何可以連接服務器的主機開放,這可能會導致暴力破解密碼。最好永遠不要留下數據庫帳戶,不管它的權限多麼有限,這麼寬敞。 – 2010-08-20 21:39:54

+0

感謝您的幫助。事實證明,我們在服務器上遇到了一個DNS問題:(我們在幾個小時內應該是黃金的。) – SidC 2010-08-22 08:11:54

1
<?php 
/* Set Variables */ 
$host="127.0.0.1:3306"; 
$db="dbname"; 
$username="dbuser"; 
$pass="pass"; 

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

?> 

首先,爲您的if/else語句添加這些大括號。其次,嘗試對IP進行硬編碼。我只是將IP設置爲一個變量(沒有工作),然後對它進行硬編碼,工作得很好。

+0

感謝您將if/else括號引起我的注意。我做了更改,然後嘗試使用「我的服務器IP地址」而不是在mysqli語句中的$ host,並且收到相同的錯誤:( – SidC 2010-08-20 17:55:48

+0

也許嘗試連接到主機而不通過$ db參數,同時檢查數據庫名稱,我知道在我的服務器上,名稱有一個前綴附加到他們。所以它會像'44536_mydatabase'而不是'mydatabase' – Elxx 2010-08-20 18:18:11

相關問題