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

时间:2015-10-12 09:34:39

标签: mysql perl

我正在尝试将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.

如何设置与服务器的连接?

编辑:这不是重复。允许用户从任何主机访问,我们不想回滚到旧密码,如上所述

1 个答案:

答案 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