我试图安装 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
就可以访问数据库了