mysql:ERROR 1018(HY000):无法读取'。'的目录。

时间:2013-05-28 20:01:42

标签: mysql ubuntu-12.04 dir

我正在尝试为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之类的查询工作正常。

为什么?

2 个答案:

答案 0 :(得分:4)

我遇到了完全相同的问题。 mysqldata文件夹的所有者和权限是正确的。但它仍然说:mysql:ERROR 1018(HY000):无法读取'的目录。'

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

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

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

到(不要错过斜线

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

然后重启AppArmor和mysql。

    sudo service apparmor restart
    sudo service mysql restart

之后错误消失了!

答案 1 :(得分:1)

这似乎是一个许可问题。可能的解决方法:

chown -R mysql.mysql /mnt/mysql/mysql