【发布时间】:2010-07-20 16:15:38
【问题描述】:
我有一个 Perl 脚本,它从一台服务器(我们称之为 server1)上的 MySQL 数据库获取数据,处理它并将其写入另一台服务器(server2)上的另一个数据库。两台服务器都与运行 Perl 脚本的服务器远程。
我可以连接到 server1 上的数据库 OK,但是当我尝试使用相同的 DBI 方法连接到 server2 上的数据库时,出现错误。这里,作为命令行 Perl,是导致错误的位:
perl -MDBI -e 'DBI->connect("DBI:mysql:myDB:server2.whatever.co.uk","myuser","mypassword") or die DBI->errstr;'
这是错误消息:
DBI connect('myDB:server2.whatever.co.uk','myuser',...) failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client at -e line 1
Client does not support authentication protocol requested by server; consider upgrading MySQL client at -e line 1.
我没有 root 访问权限,因此无法升级 MySQL,也无法更改密码以使用旧密码哈希算法,这是很多地方建议的解决方案。
有什么想法吗?
【问题讨论】:
-
除了编写您自己的低级套接字 mysql 客户端(我不推荐)之外,给您的 2 个选项是 AFAIK 唯一的选项。
-
是的,这就是我所担心的。只是希望有人知道不同。