当我尝试在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.
可能导致问题的原因是什么?
提前致谢
答案 0 :(得分:67)
您需要为目录设置所有权和权限:
chown -R mysql:mysql /var/lib/mysql/ #your mysql user may have different name
chmod -R 755 /var/lib/mysql/
注意:-R
使命令递归 - 如果/var/lib/mysql/
中没有子目录,则可以省略它。
答案 1 :(得分:32)
对于我们OS X用户,这应该有效:
sudo chown -R mysql:mysql /usr/local/mysql/
sudo chmod -R 755 /usr/local/mysql/
编辑:根据你安装mysql的方式,你的里程数会有所不同。我在mysql.com上使用mysql社区服务器dmg安装程序安装
如果这不起作用,请尝试运行which mysql
以查看您的mysql安装位置,然后将上面命令中的/usr/local/mysql/
替换为' bin之前的内容#39;目录。
例如,在我的系统which mysql
上产生以下输出:
/usr/local/mysql/bin/mysql
所以我的路径是/usr/local/mysql/
答案 2 :(得分:1)
chown -R mysql:mysql /var/lib/mysql/
chmod -R 755 /var/lib/mysql/
我可以确认这两个chmod语句对我有用(Webmin没有看到数据库也没有显示表格)但是我不确定为什么在设置了大约二十几个服务器(Centos)之后我必须这样做MySQL在过去的几年里。
答案 3 :(得分:1)
在CentOS / RedHat上,你应该在不同的路径上做同样的事情:
chown -R mysql:mysql /data/mysql/
chmod -R 755 /data/mysql/
答案 4 :(得分:0)
osx high sierra使用以下命令解决了这个问题:
chown -R mysql:mysql /usr/local/mysql
答案 5 :(得分:0)
如果您使用自制软件安装了mariadb,则可以在OS X上运行以下命令
sudo chown -R mysql:mysql /var/lib/var/mysql/
sudo chmod -R 777 /usr/local/var/mysql/