LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1650|回复: 5

mysql Access Denied 是个什么原因引起?

[复制链接]
发表于 2006-7-19 19:11:29 | 显示全部楼层 |阅读模式
一台服务器,rhel3.0
MySQL是用rpm包装的:MySQL-client/server-4.1.13
rhel3.0自带的mysql-3.23.58没有安装。
MySQL-server-4.1.13里有mysqlhotcopy工具,程序都是静态编译的。

要用mysqlhotcopy作备份,
先出一个错,抱怨libmysqlclient.so.10没有。我到dev.mysql.com下载MySQL-shared-compat rpm包装好,它不抱怨了。
然后是抱怨authentication protocol不一致,要求升级mysql client.
我想,去×他×妈×的,我装的MySQL-client/server版本是一样的。mysql client也是好使的。
但是一想,
mysql是静态编译的,mysqlhotcopy是一个perl脚本,可能是其调用的so库文件版本的原因,于是换了好几个libmysqlclient.so.10版本的rpm包,结果还是一样。

然后,我用mysql client登录mysql-server,新建了一个用户userabc@localhost,拥有全部权限。使用old_password()设置了老式的长度为16的密码。在my.cnf里[mysql]里指定了user & password。这时在shell里直接输入mysql,是可以登录mysql server的,但是使用mysqlhotcopy仍然出错:

#mysqlhotcopy mysql /tmp
DBI connect(';host=localhost;mysql_read_default_group=mysqlhotcopy','',...) failed: Access denied for user 'userabc'@'localhost' (using password: YES) at /usr/bin/mysqlhotcopy line 178

是什么原因呢?请指教
发表于 2006-7-20 09:36:25 | 显示全部楼层
用户名,密码和访问位置之间哪个有问题
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-20 11:25:33 | 显示全部楼层
"在shell里直接输入mysql,是可以登录mysql server的,但是使用mysqlhotcopy仍然出错"

也就是说mysql client 和perl script mysqlhotcopy 都是使用/etc/my.cnf里的配置.
mysql client可以, 说明 "用户名,密码和访问位置之间" 哪个都没问题.
回复 支持 反对

使用道具 举报

发表于 2006-7-20 12:08:53 | 显示全部楼层
在shell里直接输入mysql使用的是当前shell用户,不一定是userabc
你试试看 mysql -u userabc -p 能不能正常登录
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-20 13:39:01 | 显示全部楼层
问题解决了,谢谢楼上的兄弟捧场.原因是

my.cnf的
password        = XXXXX
部分,如果XXXXX不加引号, mysql不好用, mysqlhotcopy好用.
如果XXXXX加引号,mysql好用, mysqlhotcopy不好用.

我这里是加了引号的,故出现了上面的问题.
另外,XXXXX里包含有 * # . 字符
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-7-20 13:39:02 | 显示全部楼层
不好意思,网速不好
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表