mysql error : ERROR 1018 (HY000): Can't read d

2020-02-08 00:46发布

when i try to view the databases in mysql i get this error:

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

And that stops my app from displaying...

My django debugger says:

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

Here is my settings file :

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.

What can cause the problem?

Thanks in advance

6条回答
来,给爷笑一个
2楼-- · 2020-02-08 01:14

On CentOS/RedHat, you should do the same thing on a different path:

chown -R mysql:mysql /data/mysql/
chmod -R 755 /data/mysql/
查看更多
别忘想泡老子
3楼-- · 2020-02-08 01:28
chown -R mysql:mysql /var/lib/mysql/

chmod -R 755 /var/lib/mysql/

I can confirm that these two chmod statements worked for me (Webmin didn't see the databases nor did show tables) but I'm not sure why I had to do this after setting up perhaps two dozen servers (Centos) with MySQL in that past few years.

查看更多
4楼-- · 2020-02-08 01:30

You need to set ownership and permissions for directory:

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

Note: -R makes commands recursive - you may omit it, if there is no subdirs in /var/lib/mysql/.

查看更多
女痞
5楼-- · 2020-02-08 01:35

For Us OS X Users, this should work:

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

Edit: Depending on how you installed mysql your mileage my vary. I installed using the mysql community server dmg installer on mysql.com

If this doesn't work, try running which mysql to see where your mysql installation is located, and then replace /usr/local/mysql/ in the command above with whatever is before the 'bin' directory.

For example, on my system which mysql produces the following output: /usr/local/mysql/bin/mysql

so my path is /usr/local/mysql/

查看更多
我欲成王,谁敢阻挡
6楼-- · 2020-02-08 01:37

osx high sierra use the following command solves the issue:

chown -R mysql:mysql /usr/local/mysql
查看更多
Rolldiameter
7楼-- · 2020-02-08 01:39

if you installed mariadb using homebrew you can run the following the command for OS X

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

查看更多
登录 后发表回答