首先,我要说的是,mysql在机器上似乎运行得很好。尽管如此,当我su mysql
和时ls /var/lib/mysql
,我的访问被拒绝。当我sudo ls /var/lib/mysql
看到我的数据库表对应的数据文件时,所以这肯定是mysql的数据文件夹。
mysql 用户不应该有权访问自己的数据文件夹吗?机器是否配置错误?
更多细节:
$ sudo ls -la /var/lib/ | grep mysql
drwx------ 5 mysql mysql 4096 2011-06-25 08:05 mysql
$ sudo su mysql
$ ls /var/lib/mysql
ls: cannot open directory /var/lib/mysql: Permission denied
$ sudo ls -la /var | grep lib
drwxr-xr-x 42 root root 4096 2011-03-17 12:03 lib
$ sudo ls -la / | grep var
drwxr-xr-x 14 root root 4096 2010-12-02 19:14 var
$
答案1
你的测试有某种错误。守护进程正常工作这一事实证明,用户mysql
能够读取该文件夹。如 的输出所示ls
,它完全属于mysql
。如果您确实是mysql
用户,那么阅读它就不会有问题。
我认为你su
失败了,可能是因为mysql
用户没有 shell。您可以签入/etc/passwd
,但它可能被设置为/bin/true
或类似的东西,因此su
成功但立即退出,然后当您运行它时,ls
它只是以您的用户身份运行。尝试sudo -u mysql ls -al /var/lib/mysql
一下。
下次通过跑步来检查你是否真的是你认为的那个人whoami
。这也是当前用户名通常也是 PS1 提示的一部分的原因之一。如果您上面的复制/粘贴尚未经过编辑,则您的 shell 提示符不会显示您是谁。