显示数据库时出现 MySQL 权限错误

显示数据库时出现 MySQL 权限错误

我试图安装 homebrew 但非常愚蠢地做了以下事情:

sudo chown -R $USER /usr/local

Homebrew 说明中说要这样做,但我不太擅长系统管理员,所以我就相信了。吸取了教训(虽然我真的不知道如何测试这一点……似乎“撤消”脚本在这里非常有用)

不管怎样,木已成舟,但现在我收到了这个错误:

$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 548
Server version: 5.1.33 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> show databases;
ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)

我尝试过将权限恢复为 root,但无济于事。有人知道我该如何在不重新安装 mysql 的情况下修复这个问题吗?或者,如果我必须重新安装 mysql,我该如何在不访问命令行的情况下转储我的数据库,这样我就不会丢失所有数据。

谢谢!

答案1

找到 mysql 的数据目录,并将其 chown 为 MySQL 的用户(通常是 mysql:mysql)...

答案2

确定 mysql 以哪个用户身份运行(我会使用ps aux |grep mysql,但是你给 ps 的标志可能不同),找到 mysql 的安装位置(我的 ps 结果显示为--datadir=/usr/local/mysql/data,但是你可能需要你的屏幕足够宽这样它就不会截断命令),然后将所有权更改回正确的用户。

答案3

$ cd /usr/lcoal/mysql/

$ ls -l

$ sudo -R chown mysql:mysql data/

data//usr/local/mysql/是一个包含所有数据库的目录。

现在mysql -u user -p password就可以访问数据库了

相关内容