3

我正在尝试为 mysql (OS Ubuntu 12.04) 设置不同的数据目录,例如/mnt/mysql/mysql.

我正在执行:

sudo mysql_install_db --user=mysql --datadir=/mnt/mysql/mysql
sudo /etc/init.d/mysql start
mysql -uroot

问题是查询SHOW DATABASES;给出了ERROR 1018 (HY000): Can't read dir of '.' (errno: 13),但像这样的查询SHOW TABLES FROM mysql工作正常。

为什么?

4

2 回答 2

4

我遇到了完全相同的问题。mysqldata 文件夹的所有者和权限是正确的。但它仍然说: mysql: ERROR 1018 (HY000): Can't read dir of '.'

我整天都在为此苦苦挣扎。最后我解决了。请检查/etc/apparmor.d/usr.sbin.mysqld文件。相反,它应该是/data/mysql/ r。我错过了一个正斜杠

在我改变之后(vi /etc/apparmor.d/usr.sbin.mysqld)

    /data/mysql r,
    /data/mysql/** rwk,

to(不要错过斜线

    /data/mysql/ r,
    /data/mysql/** rwk,

然后重启 AppArmor 和 mysql。

    sudo service apparmor restart
    sudo service mysql restart

之后错误消失了!

于 2015-05-23T06:44:17.133 回答
1

这似乎是一个权限问题。可能的修复:

chown -R mysql.mysql /mnt/mysql/mysql
于 2013-05-28T20:59:12.590 回答