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.
問題の原因は何ですか?
前もって感謝します
ディレクトリの所有権と許可を設定する必要があります。
chown -R mysql:mysql /var/lib/mysql/ #your mysql user may have different name
chmod -R 755 /var/lib/mysql/
注:-R
はコマンドを再帰的にします。/var/lib/mysql/
にサブディレクトリがない場合は、コマンドを省略できます。
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/
です
chown -R mysql:mysql /var/lib/mysql/
chmod -R 755 /var/lib/mysql/
これらの2つのchmodステートメントが私のために働いたことを確認できます(Webminはデータベースを表示せず、テーブルも表示しませんでした)が、その中でMySQLを使用しておそらく12ダースのサーバー(Centos)をセットアップした後にこれをしなければならなかった理由がわかりません過去数年。
CentOS/RedHatでは、異なるパスで同じことを行う必要があります。
chown -R mysql:mysql /data/mysql/
chmod -R 755 /data/mysql/
osx High Sierraは次のコマンドを使用して問題を解決します。
chown -R mysql:mysql /usr/local/mysql