免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1347 | 回复: 1
打印 上一主题 下一主题

连接数据库的密码问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 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

论坛徽章:
0
2 [报告]
发表于 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
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP