2012-06-16 6 views
27

gdy próbuję przeglądać bazy danych w MySQL ja dostać ten błąd:Błąd mysql: BŁĄD 1018 (HY000): Nie można odczytać katalogu "." (Errno: 13)

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

A, który zatrzymuje moją aplikację wyświetlanie ...

Moje Django debugger mówi:

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

Tutaj jest złożyć moje ustawienia:

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. 

Co może c ause problem?

Dzięki z góry

+0

byłaś wcześniej podłączony? Czy możesz edytować w swoim pliku ustawień, abyśmy mogli lepiej zrozumieć, co się dzieje? –

+0

tak, to jest –

+0

Może to może być przydatne, jeśli twój system używa AppArmor: http: //ar.zu.my/solved-show-databases-error-1018-hy000-can-t-read-dir- z-errno-13/ – user1981275

Odpowiedz

47

trzeba ustawić własności i uprawnień dla katalogu:

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

Uwaga: -R sprawia polecenia rekurencyjne - można go pominąć, jeśli nie ma subdirs w /var/lib/mysql/.

+0

czy powinienem zastąpić pierwszy mysql moim użytkownikiem mysql? –

+1

użytkownika, pod którym uruchamiany jest demon 'mysqld' - patrz w'/etc/passwd'. Domyślam się, że jest to 'mysql' domyślnie – scriptin

+0

ive zmieniono go i działa, ale teraz działa, ale jeśli przeładowuję go nie robi ... i czy ponownie załadować to robi –

1
chown -R mysql:mysql /var/lib/mysql/ 

chmod -R 755 /var/lib/mysql/ 

Mogę potwierdzić, że te dwa chmod oświadczenia pracował dla mnie (Webmin nie widzi bazy danych, ani nie przedstawiają tabele), ale nie jestem pewien, dlaczego musiałem to zrobić po skonfigurowaniu może dwa tuziny serwerów (Centos) z MySQL w ciągu ostatnich kilku lat.

+0

Dlaczego dodałeś tę samą odpowiedź, co @scriptin, tylko po to, aby powiedzieć, że działa, ale nie wiesz, co naprawdę robi. Lepiej zamieść komentarz w drugiej odpowiedzi i awansuj (jeśli możesz). Nie jest dobrym pomysłem sugerowanie innym rzeczy, których nie rozumiesz. – PhoneixS

27

dla nas OS X Użytkowników, to powinno działać:

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

Edit: W zależności od tego, jak został zainstalowany mysql Twój przebieg moich różnić. Zainstalowałem pomocą społeczności MySQL Server dmg instalatora mysql.com

+0

kilka lat później, ale dziękuję! –

+1

Znalazłem to w Google i podczas gdy byłem w stanie użyć odpowiedzi, aby rozwiązać mój problem, miałem różne ścieżki. Opublikowaliśmy to dla korzyści innych użytkowników mac, którzy mogą tu skończyć. – denodster

+1

Wygląda na to, że został przeniesiony do El Capitan w Macportach.Musiałem użyć 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/local/var/log/mysql56/ – DDay

0

osx High Sierra użyć następujących poleceń rozwiązuje problem:

chown -R mysql:mysql /usr/local/mysql 
Powiązane problemy