2013-03-08 138 views
2

我需要通過asp.net連接到MYSQL數據庫。我使用的MySQL連接器,以與數據庫連接,但同時這樣做,我有這個錯誤:enter image description here無法連接到Asp.Net中的遠程MySql服務器

 
Authentication with old password no longer supported, use 4.1 style passwords. 
+0

你見過[this](http://forums.cpanel.net/f34/old-style-passwords-settings-when-using-mysql-5-x-150333.html)嗎? – 2013-03-08 13:56:25

+0

我的連接字符串如下: 2013-03-08 14:14:49

回答

5

從MySQL 4.1和更高的,他們使用了新的協議,它不與早期版本兼容。這就是爲什麼當您將服務器從早期版本升級到4.1或更高版本時,您會收到驗證錯誤消息。

如果您需要在4.1版之前和之後的兩個客戶端連接到數據庫,則必須存儲兩個密碼。一種是舊的方式,一種是新的方式。

可以使用設置用戶密碼,以新的方式:

SET PASSWORD for <username> = PASSWORD('new password') 
SET PASSWORD FOR 'steve'@'10.15.2.67' = PASSWORD('my secure password'); 

如果需要的話,你也可將密碼使用設置的老路上:

SET PASSWORD for <username> = OLD_PASSWORD('new password') 
SET PASSWORD FOR 'steve'@'10.15.2.67' = OLD_PASSWORD('my secure password'); 

有一個在一個偉大的頁面MySQL manual其中詳細的過程

你可以實際上對於服務器如果比4.1更新仍然使用舊的密碼方法然而這不建議使用

爲此,您可以使用--old-passwords選項啓動服務器。

所以,無論是在服務器更新並您使用的是舊的客戶端 - 或者你已經更新您的客戶端(現在使用新的密碼系統)和您連接到服務器低於4.1

+0

這感覺更像是一個評論,而不是答案。 – Kermit 2013-03-08 14:17:27

+0

我正在連接到實時數據庫。我如何能夠在現場更改我的密碼? – 2013-03-08 14:29:17

+1

@AarolamaBluenk你是對的,我很懶。我已經更新了我的答案,作爲實際答案,而不是真正的解決方案評論。 – Steve 2013-03-08 14:35:46

0

確定,但如果你沒有授權這樣做,只是因爲你是在一個共享的主機環境:

SET PASSWORD for <username> = OLD_PASSWORD('new password') 
SET PASSWORD FOR 'steve'@'10.15.2.67' = OLD_PASSWORD('my secure password'); 

你能做些什麼? 我還沒有找到解決方法,我的託管服務提供商已經改變了mysql配置,沒有警告......也沒有給出解決方案。

UNCOMPLETE SOLUTION 您可以強制web.config使用舊連接器。它似乎工作,但mysql錯誤發生......所以我認爲有一個錯誤在連接器的某處。