我需要通过 asp.net 连接到 MYSQL 数据库。我正在使用 MySQL 连接器与数据库建立连接,但在执行此操作时出现此错误:
不再支持使用旧密码进行身份验证,请使用 4.1 样式的密码。
我需要通过 asp.net 连接到 MYSQL 数据库。我正在使用 MySQL 连接器与数据库建立连接,但在执行此操作时出现此错误:
不再支持使用旧密码进行身份验证,请使用 4.1 样式的密码。
从 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手册中有一个很棒的页面,它将详细说明该过程
如果服务器版本高于 4.1,您实际上可以使用旧密码方法,但不建议这样做。
为此,您可以使用--old-passwords选项启动服务器。
因此,服务器已更新并且您使用的是旧客户端 - 或者您已更新您的客户端(现在使用新密码系统)并且您连接到低于 4.1 的服务器
好的,但是如果您没有权限这样做,仅仅是因为您处于共享托管环境中:
SET PASSWORD for <username> = OLD_PASSWORD('new password')
SET PASSWORD FOR 'steve'@'10.15.2.67' = OLD_PASSWORD('my secure password');
你能做什么?我还没有找到解决方法,我的托管服务提供商在没有警告的情况下更改了 mysql 配置……也没有给出解决方案。
未完成的解决方案 您可以强制 web.config 使用旧的连接器。它似乎有效,但发生了 mysql 错误......所以我认为连接器中的某处存在错误。