簡體   English   中英

mysql 錯誤:錯誤 1018 (HY000):無法讀取 '.' 的目錄 (錯誤號:13)

[英]mysql error : ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)

當我嘗試在 mysql 中查看數據庫時出現此錯誤:

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

這會阻止我的應用程序顯示...

我的 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/中沒有子目錄,您可以省略它。

這應該適用於 Mac 用戶:

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

如果這不起作用,請嘗試運行which mysql以查看您的 mysql 安裝位置,然后將上面命令中的/usr/local/mysql/替換為“bin”目錄之前的內容。

例如,在我which mysql產生以下輸出:

/usr/local/mysql/bin/mysql

所以我的路徑是/usr/local/mysql/

在 CentOS/RedHat 上,你應該在不同的路徑上做同樣的事情:

chown -R mysql:mysql /data/mysql/
chmod -R 755 /data/mysql/
chown -R mysql:mysql /var/lib/mysql/

chmod -R 755 /var/lib/mysql/

我可以確認這兩個 chmod 語句對我有用(Webmin 沒有看到數據庫,也沒有顯示表)但是我不確定為什么在用 MySQL 設置了大約兩打服務器(Centos)之后我必須這樣做過去幾年。

osx high sierra 使用以下命令解決問題:

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

如果你使用 homebrew 安裝了 mariadb,你可以為 OS X 運行以下命令

sudo chown -R mysql:mysql /var/lib/var/mysql/
sudo chmod -R 777 /usr/local/var/mysql/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM