データベースを表示するときの 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)

chown を実行してルートに戻そうとしましたが、うまくいきませんでした。mysql を再インストールせずにこれを修正する方法を知っている人はいますか? オプションとして、mysql を再インストールする必要がある場合、すべてのデータを失わないように、コマンド ラインにアクセスせずにデータベースをダンプするにはどうすればよいでしょうか。

ありがとう!

答え1

mysql のデータ ディレクトリを見つけて、それを MySQL のユーザー (通常は mysql:mysql) に chown します...

答え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、データベースにアクセスしましょう

関連情報