我正在尝试将Perl设置为连接到mysql数据库。 我正在使用Perl 5.16,因为这是一个需要, 带有DBD的DBI 1.622:来自cpan的mysql正在构建。 mysql数据库是5.6.26版 mysql数据库使用SHA256身份验证,这不会被更改,也不能设置具有old_authentication或native的帐户。 我无法连接到数据库,因为它回复 不支持客户端身份验证方案。 我的简短测试脚本是
use DBI;
use DBD::mysql;
$dbh = DBI->connect('DBI:mysql:host=dbhost', 'dbtest', 'test'
) || die "Could not connect to database: $DBI::errstr";
返回的错误消息是
DBI connect('host=dbhost,'dbtest',...) failed: Client does not support authentication
protocol requested by server; consider upgrading MySQL client at dbtest.pl line 4.
Could not connect to database: Client does not support authentication protocol requested
by server; consider upgrading MySQL client at dbtest.pl line 4.
如何设置与服务器的连接?
编辑:这不是重复。允许用户从任何主机访问,我们不想回滚到旧密码,如上所述
答案 0 :(得分:0)
@martinclayton是正确的。您有一个非常旧版本的PERL MySQL DBD模块。升级到4.1发生在十多年前。
阅读本文:https://dev.mysql.com/doc/refman/5.5/en/old-client.html
您需要升级DBD模块。马丁的链接会给你一些提示,告诉你如何做到这一点。 http://search.cpan.org/~capttofu/DBD-mysql-4.032/lib/DBD/mysql/INSTALL.pod#PREREQUISITES