web-dev-qa-db-ja.com

mysqlエラー:エラー1018(HY000): '。'のディレクトリを読み取れません(errno:13)

mysqlでデータベースを表示しようとすると、次のエラーが表示されます。

ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)

そして、それは私のアプリの表示を停止します...

My Django=デバッガーは言う:

(2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/my_database' (13)")

ここに私の設定ファイルがあります:

DATABASES = {
'default': {
    'ENGINE': 'Django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'Oracle'.
    'NAME': 'my_database',                      # Or path to database file if using sqlite3.
    'USER': 'root',                      # Not used with sqlite3.
    'PASSWORD': '****',                  # Not used with sqlite3.
    'Host': '',                      # Set to empty string for localhost. Not used with sqlite3.
    'PORT': '3306',                      # Set to empty string for default. Not used with sqlite3.

問題の原因は何ですか?

前もって感謝します

37
Tony Kyriakidis

ディレクトリの所有権と許可を設定する必要があります。

chown -R mysql:mysql /var/lib/mysql/ #your mysql user may have different name
chmod -R 755 /var/lib/mysql/

注:-Rはコマンドを再帰的にします。/var/lib/mysql/にサブディレクトリがない場合は、コマンドを省略できます。

70
scriptin

Us OS Xユーザーの場合、これは機能するはずです。

Sudo chown -R mysql:mysql /usr/local/mysql/
Sudo chmod -R 755 /usr/local/mysql/

編集:mysqlのインストール方法によって、マイレージは異なります。 mysql.comでmysqlコミュニティサーバーdmgインストーラーを使用してインストールしました

これが機能しない場合は、which mysqlを実行してmysqlインストールの場所を確認し、上記のコマンドの/usr/local/mysql/を 'bin'ディレクトリの前にあるものに置き換えてください。

たとえば、私のシステムではwhich mysqlは次の出力を生成します:/usr/local/mysql/bin/mysql

だから私のパスは/usr/local/mysql/です

33
denodster
chown -R mysql:mysql /var/lib/mysql/

chmod -R 755 /var/lib/mysql/

これらの2つのchmodステートメントが私のために働いたことを確認できます(Webminはデータベースを表示せず、テーブルも表示しませんでした)が、その中でMySQLを使用しておそらく12ダースのサーバー(Centos)をセットアップした後にこれをしなければならなかった理由がわかりません過去数年。

1
mfs

CentOS/RedHatでは、異なるパスで同じことを行う必要があります。

chown -R mysql:mysql /data/mysql/
chmod -R 755 /data/mysql/
1

osx High Sierraは次のコマンドを使用して問題を解決します。

chown -R mysql:mysql /usr/local/mysql
0
Airful