2012-06-16 6 views
27

जब मैं mysql में डेटाबेस देखने पर मैं इस त्रुटि मिलती है कोशिश:mysql त्रुटि: ERROR 1018 (HY000): '।' के dir को नहीं पढ़ सकता (Errno: 13)

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. 

क्या ग कर सकते हैं समस्या का दुरुपयोग?

अग्रिम धन्यवाद

+0

आप पहले से कनेक्ट किया गया है? क्या आप अपनी सेटिंग्स फ़ाइल में संपादित कर सकते हैं ताकि हम क्या हो रहा है इसका बेहतर विचार प्राप्त कर सकें? –

+0

हाँ वहाँ यह –

+0

हो सकता है कि इस काम का हो सकता है, इस मामले में आपके सिस्टम AppArmor का उपयोग करता है: http: //ar.zu.my/solved-show-databases-error-1018-hy000-can-t-read-dir- का गलत-13/ – user1981275

उत्तर

47

में आप निर्देशिका के लिए स्वामित्व और अनुमतियाँ निर्धारित करने की आवश्यकता:

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

नोट: -R आदेशों पुनरावर्ती बनाता है - आप इसे छोड़ सकते हैं, अगर वहाँ /var/lib/mysql/ में कोई उपनिर्देशिका है।

+0

क्या मुझे अपने mysql उपयोगकर्ता के साथ पहले mysql को प्रतिस्थापित करना चाहिए? –

+1

वह उपयोगकर्ता जिसके अंतर्गत आपका 'mysqld' डिमन चलाया जाता है - '/ etc/passwd' में देखें। मैं इसे 'डिफ़ॉल्ट – scriptin

+0

Ive द्वारा mysql' है मानना ​​है कि यह बदल गया है और यह काम करता है, लेकिन अब यह काम करता है लेकिन अगर मैं फिर से लोड है ना ... और अगर मैं फिर से फिर से लोड यह –

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

chmod -R 755 /var/lib/mysql/ 

मैं पुष्टि कर सकता है कि इन दो chmod बयान मेरे लिए काम किया (Webmin डेटाबेस में नहीं देखा और न ही किया था शो टेबल), लेकिन मुझे यकीन है कि नहीं कर रहा हूँ कारण है कि मैं शायद दो दर्जन सर्वर स्थापित करने के बाद यह करने के लिए किया था (Centos) पिछले कुछ वर्षों में MySQL के साथ।

+0

आपने केवल इतना ही जवाब दिया है कि @scriptin के रूप में यह कहने के लिए कि यह काम करता है लेकिन आपको नहीं पता था कि वे वास्तव में क्या करते हैं। बेहतर दूसरे उत्तर में एक टिप्पणी डालें और इसे ऊपर उठाएं (यदि आप कर सकते हैं)। उन चीजों को सुझाव देना एक बुरा विचार है जिसे आप समझ में नहीं आते हैं। – PhoneixS

27

हमारे ओएस एक्स उपयोगकर्ता के लिए, यह काम करना चाहिए:

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

संपादित करें: कैसे आप mysql स्थापित आपका माइलेज भिन्न मेरे पर निर्भर करता है। मैं mysql.com पर mysql समुदाय सर्वर डीएमजी इंस्टॉलर का उपयोग स्थापित

+0

कुछ साल देर हो चुकी है लेकिन धन्यवाद! –

+1

मुझे यह Google के साथ मिला और जब मैं अपनी समस्या को ठीक करने के लिए उत्तर का उपयोग करने में सक्षम था, तो मेरे पास अलग-अलग पथ थे। इसलिए मैंने इसे अन्य मैक उपयोगकर्ताओं के लाभ के लिए पोस्ट किया जो यहां समाप्त हो सकते हैं। – denodster

+1

ऐसा लगता है कि मैकपोर्ट के तहत एल कैपिटन में स्थानांतरित किया गया है।मैं का इस्तेमाल किया था sudo chown आर _mysql: _mysql/opt/स्थानीय/var/db/mysql56/ sudo chown आर _mysql: _mysql/opt/स्थानीय/var/चलाने/mysql56/ sudo chown आर _mysql: _mysql/opt/local/var/log/mysql56/ – DDay

0

OSX उच्च सिएरा निम्न आदेश मुद्दे को हल करती है का उपयोग करें:

chown -R mysql:mysql /usr/local/mysql 
संबंधित मुद्दे