Ошибка mysql: ОШИБКА 1018 (HY000): невозможно прочитать каталог '.' (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.

Что может вызвать проблему?

заранее спасибо

 user198127510 мар. 2014 г., 22:06
Может быть, это может быть полезно, если ваша система использует AppArmor:ar.zu.my/…
 Gareth Webber16 июн. 2012 г., 21:37
Вы были связаны ранее? Можете ли вы отредактировать файл настроек, чтобы мы могли лучше понять, что происходит, пожалуйста?
 Tony Kyriakidis16 июн. 2012 г., 21:46
да, это так

Ответы на вопрос(5)

Решение Вопроса

Вам необходимо установить владельца и разрешения для каталога:

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

Замечания:-R делает команды рекурсивными - вы можете пропустить их, если в/var/lib/mysql/.

 Tony Kyriakidis16 июн. 2012 г., 21:44
я должен заменить первый mysql с моим пользователем mysql?
 08 авг. 2014 г., 12:27
Это очень помогает
 16 июн. 2012 г., 22:36
@TonyKyriakidis ты перезапустилmysqld? (service mysqld restart)
 Tony Kyriakidis16 июн. 2012 г., 22:34
я изменил его, и он работает, но теперь он работает, но если я перезагрузить его нет ... и если я перезагрузить снова, он делает
 16 июн. 2012 г., 22:26
пользователь, под которым вашmysqld демон запущен - смотрите в/etc/passwd, Я верю чтоmysql по умолчанию

Для нас, пользователей OS X, это должно работать:

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

Изменить: В зависимости от того, как вы установили MySQL ваш пробег может варьироваться. Я установил с помощью установщика dmg сервера сообщества mysql на mysql.com

Если это не работает, попробуйте запуститьwhich mysql чтобы увидеть, где находится ваша установка MySQL, а затем заменить/usr/local/mysql/ в приведенной выше команде с тем, что находится перед «bin» каталог.

Например, в моей системеwhich mysql производит следующий вывод: /usr/local/mysql/bin/mysql

так что мой путь/usr/local/mysql/

 19 апр. 2016 г., 19:45
Благодарю. Это помогло мне после перехода на El Capitan.
 Tony Kyriakidis10 дек. 2015 г., 10:16
несколько лет назад, но спасибо!
 01 апр. 2016 г., 15:40
Кажется, он переехал в Эль-Капитан под Macports. Мне пришлось использовать sudo chown -R _mysql: _mysql / opt / local / var / db / mysql56 / sudo chown -R _mysql: _mysql / opt / local / var / run / mysql56 / sudo chown -R _mysql: _mysql / opt / местный / вар / журнал / mysql56 /
 14 дек. 2015 г., 20:41
Я нашел это с помощью Google, и, хотя я смог использовать ответ для решения своей проблемы, у меня были разные пути. Поэтому я опубликовал это в интересах других пользователей Mac, которые могут оказаться здесь.
 16 нояб. 2017 г., 21:08
также на OS X здесь (Mavericks 10.9) - мой пользователь MySQL был_mysql, Вы можете узнать своего пользователя (и MySQL установить каталог) сps aux |grep mysql.

osx high sierra использует следующую команду для решения проблемы:

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

chmod -R 755 /var/lib/mysql/

Я могу подтвердить, что эти два оператора chmod работали для меня (Webmin не видел базы данных и не показывал таблицы), но я не уверен, почему я должен был сделать это после настройки, возможно, двух десятков серверов (Centos) с MySQL в этом последние несколько лет

 03 мар. 2017 г., 13:24
Почему вы добавили тот же ответ, что и @scriptin, только для того, чтобы сказать, что он работает, но вы не знали, что они на самом деле делают. Лучше вставьте комментарий в другой ответ и проголосуйте (если можете). Это плохая идея предлагать другим то, что вы не понимаете.

В CentOS / RedHat вы должны сделать то же самое на другом пути:

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

Ваш ответ на вопрос