mysql - 使用 SHA-256 身份验证的 Perl DBD mysql 失败

标签 mysql perl

我正在尝试设置 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/

相关文章:

mysql - 任何适用于 Windows 的 MySQLTuner 等效/替代品?

MySQL 找不到我的文件

perl - (+) 裸字和移位运算符有什么用?

xml - 如何使用 Perl 的 XML::Twig 向子元素添加属性?

perl - 如何在 Perl 中表示集合?

mysql - 使用unix按月对sql结果进行排序

mysql - 对于为 OAuth 使用创建的 MySQL 表,使用 latin1 而不是 utf8 有什么影响?

php - 在 PHP 中匹配关键字

Perl:如何确保从基类内部访问时调用重写的方法

python - 从文件中随机选择行