Chinaunix

标题: 连接数据库的密码问题 [打印本页]

作者: stoneultra    时间: 2004-04-27 18:08
标题: 连接数据库的密码问题
有个问题问大家,我在用perl连接mysql数据库的时候,比如我用root用户名登录,在没有设定root密码的时候,以下程序运行中没有
出现任何错误提示,说明连接是成功的。
#!/usr/local/bin/perl
use strict;
use DBI;
my $dbh=DBI->;connect ("DBI:mysql:site","root",""
or die "can not connect to the database $DBI::errstr";

$dbh->;disconnect();

但是我给root加上密码后,不能连接访问了,比如我按手册所提供的命令设密码为1234
shell>; mysql -u root mysql
mysql>; SET PASSWORD FOR 'root@'localhost' = PASSWORD('1234');

然后执行上述语句

my $dbh=DBI->;connect ("DBI:mysql:site","root","1234"
出现以下提示
DBI connect('site','root',...) failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client at F:\My Documents\perltest\dbdesign.pl line 7
can not connect to the database Client does not support authentication protocol requested by server; consider upgrading MySQL client at F:\My Documents\perltest\dbdesign.pl line 7.
好像说是要升级 mysql 的客户端?是怎么一回事啊,我用的是mysql 4.1 alpha  在windows xp 下 activeperl 5.6.1  komodo2.5
作者: stoneultra    时间: 2004-04-28 01:30
标题: 连接数据库的密码问题
唉,幸好自己搞定了

原来在设密码的时候应该用这个命令


mysql>; SET PASSWORD FOR
    ->; 'some_user'@'some_host' = OLD_PASSWORD('mypass');

原来在mysql的不同版本间密码的算法不一样 原文:
MySQL 4.1 and up uses an authentication protocal based on a password hashing algorithm that is incompatible with that used by older clients.
If you upgrade the server to 4.1, attempts to connect to it with an older client may fail with the following message: 接着就是我出现的错误提示了



用刚才那条指令就是把密码设为使用原来老版的算法,这样就不会出错了,呵呵

详情可参见

http://dev.mysql.com/doc/mysql/en/Old_client.html




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2