2013-05-28 32 views
3

我想为mysql(OS Ubuntu 12.04)设置一个不同的数据目录,例如/mnt/mysql/mysqlmysql:错误1018(HY000):无法读取'。'的目录。

我执行:

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查询工作的罚款。

为什么?

+1

可能的重复http://stackoverflow.com/questions/11066411/mysql-error-error-1018-hy000-cant-read-dir-of-errno-13 –

+0

问题是相同的,@ CRRaD。如果您无法获得现有的解决方案,请发表评论,要求说明如何应用该解决方案,或提供奖励以吸引更多答案。不要简单地重新发布这个问题,因为这不会帮助任何人。谢谢 –

回答

1

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

chown -R mysql.mysql /mnt/mysql/mysql 
+0

如果一切都由mysql拥有:mysql已经和它也是chmoded 777,它怎么不能读取? – Gubatron

4

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

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

我改变后(六/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 

之后,错误消失了!

相关问题