顯示資料庫時 MySQL 權限錯誤

顯示資料庫時 MySQL 權限錯誤

我試圖安裝自製程式並且非常非常愚蠢地這樣做了:

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)

我嘗試 chown-ing 返回 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。您可以存取您的資料庫

相關內容