全新安装 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