我正在尝试设置 Perl 以连接到 mysql 数据库。 我正在使用 Perl 5.16,因为这是一个要求, 构建了来自 cpan 的带有 DBD:mysql 的 DBI 1.622。 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.
如何建立与服务器的连接?
编辑:这不是重复的。允许用户从任何主机访问,并且我们不想回滚到旧密码,如上所述
最佳答案
@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
关于mysql - 使用 SHA-256 身份验证的 Perl DBD mysql 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33077776/