ubuntu下,mysql默认数据库存放路径是 /var/lib/mysq。
一直以来都由着它默认没管,可近来发现 /var 的空间不足了,而数据库是一直增长的,只好考虑转移一下。
于是移动了数据文件,修改了权限,修改了my.cnf,然后尝试启动,却发现无法启动起来。
查看错误日志文件,发现好像是权限的问题:
[Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
[ERROR] /usr/sbin/mysqld: Can't create/write to file '/data/mysql/zhetenga.com.pid' (Errcode: 13)
[ERROR] Can't start server: can't create PID file: Permission denied
于是我再检查了权限,发现权限不应该有任何问题的,但仍然无法启动,好奇怪。
最后 baidu google了无数次后终于得到了答案,原来是ubuntu下的 apparmor 搞的。
最后通过以下修改终于让mysql启动成功了。
vi /etc/apparmor.d/usr.sbin.mysqld
把
/var/lib/mysql r,
/var/lib/mysql/** rwk,
中的 /var/lib/mysql 修改为新的路径。
一直以来用 centos 也出现过类似的错误,都是目录或文件的权限问题,而ubuntu除了目录和文件权限外,还有这个配置文件要改。
真折腾!
一直以来都由着它默认没管,可近来发现 /var 的空间不足了,而数据库是一直增长的,只好考虑转移一下。
于是移动了数据文件,修改了权限,修改了my.cnf,然后尝试启动,却发现无法启动起来。
查看错误日志文件,发现好像是权限的问题:
[Note] Plugin 'FEDERATED' is disabled.
/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
[ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
[ERROR] /usr/sbin/mysqld: Can't create/write to file '/data/mysql/zhetenga.com.pid' (Errcode: 13)
[ERROR] Can't start server: can't create PID file: Permission denied
于是我再检查了权限,发现权限不应该有任何问题的,但仍然无法启动,好奇怪。
最后 baidu google了无数次后终于得到了答案,原来是ubuntu下的 apparmor 搞的。
最后通过以下修改终于让mysql启动成功了。
vi /etc/apparmor.d/usr.sbin.mysqld
把
/var/lib/mysql r,
/var/lib/mysql/** rwk,
中的 /var/lib/mysql 修改为新的路径。
一直以来用 centos 也出现过类似的错误,都是目录或文件的权限问题,而ubuntu除了目录和文件权限外,还有这个配置文件要改。
真折腾!