mysqld 给出错误代码:13,因为它无法创建测试文件

mysqld 给出错误代码:13,因为它无法创建测试文件

全新安装 11.04。然后我按照这里的所有说明进行操作: http://www.howtoforge.com/installing-apache2-with-php5-and-mysql-support-on-ubuntu-11.04-lamp

现在当我运行 mysqld 时出现此错误:

makara@rahu:~$ mysqld
111103 13:39:37 [Warning] Can't create test file /var/lib/mysql/rahu.lower-test
111103 13:39:37 [Warning] Can't create test file /var/lib/mysql/rahu.lower-test
mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)
111103 13:39:37 [ERROR] Aborting
111103 13:39:37 [Note] mysqld: Shutdown complete

IRC 上有人说这可能是软件包问题??

谢谢甜菜

答案1

从 Oneiric 升级到 Precise 后,我遇到了同样的问题,这将 MySQL 从 5.1 升级到 5.5。

就我而言,问题是

/etc/apparmor.d/local/usr.sbin.mysqld

缺失,尽管它包含在

/etc/apparmor.d/usr.sbin.mysqld

默认情况下。一个简单的

sudo touch /etc/apparmor.d/local/usr.sbin.mysqld

为我解决了这个问题。

对于那些搜索的人来说:保存有趣信息的日志文件是 /var/log/upstart/mysql。/var/log/mysql(*|/*) 中没有任何内容

您看到的内容可能包括:

  • sudo service mysql start结果是

    启动:作业启动失败

  • 手动尝试mysqld以普通用户身份启动将像往常一样失败(在上述问题出现之前),因为用户无权访问 /var/lib/mysql(可以在系统日志中找到)。

  • 以root身份启动mysqld就会成功(不知道为什么)

答案2

mysqld 应该以 mysql 用户身份运行。您不应该手动运行守护进程。最好将其作为服务启动,如下所示:

sudo service mysql start

错误消息指出 mysql 服务无法访问用户环境中不应允许其访问的某些文件。因此,这种行为应该是正确的。但是,您应该检查目录是否存在以及谁拥有它们以及谁有权访问它们(为此使用 ls -la):

ls -la  /var/lib/
ls -la  /var/lib/mysql

相关内容