繁体   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