用最新版的 mysql connector 去链接 远程的mysql服务器.
遇到 异常 Authentication with old password no longer supported, use 4.1 style passwords.
上网搜, 官方说是服务器的密码版本新, 客户端的版本太低, 连不上. 要更新我的客户端. 但是我的connector 是刚从官方下载的最新的啊. 这不科学啊.
还有人说是去服务器上服务器上的密码存储方式 改成旧版本,这样就可以了. 但是服务器不是我的, 我没有权限去改服务器的配置.
最后发现 一个帖子http://stackoverflow.com/questions/13706463/authentication-method-mysql-old-password-not-supported
里面说 MysqL Connector/NET 6.6.x (as of 6.6.2) dropped support for old password style authentication (it was deprecated due to being insecure and there were documented ways to attack it).
其实就是说 .net的connector 已经抛弃了旧的密码方式, 只支持新的密码方式. 突然明白了. 应该是客户端的密码认证方式太新, 而服务器的密码是旧的方式存储的.
所以就要去把服务器的密码存储方式改成新的. 怎么改呢. 找到这个地址 http://writecodepeople.blogspot.com/2013/03/mysql-41-style-password.html
在服务器端只提供了phpmyadmin, 没有console啊. 我记得有个地方可以执行sql语句
于是去服务器上打开phpmyadmin. 打开数据库. 打开Sql tab, 这里可以执行 sql语句.哈哈
执行这两句:
SET old_passwords=FALSE;
SET PASSWORD = PASSWORD('重设密码');
之后, 在用c# connector 去连. 成功.
reffer: http://byNeil.com
|