2013-03-08 92 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错误发生......所以我认为有一个错误在连接器的某处。