最近新起了个MySQL,服务器上是一个小一点的SSD,搭配一个大容量机械硬盘的方案,默认存储的/var/lib/mysql会在SSD里,所以需要修改MySQL数据库的数据存储路径。当我尝试了修改/etc/mysql/中的配置文件,并将/var/lib/mysql文件夹内文件全部复制之后,重启服务发现,服务起不来了。查看日志发现是Mysql没有新的文件夹的访问权限。
那这就奇怪了,文件权限都是正常的,文件属主也在mysql上,后来才发现,是因为ubuntu系统的apparmor服务导致的。
/etc/apparmor.d/usr.sbin.mysqld 这个文件中,有这两行,规定了mysql使用的数据文件路径权限
/var/lib/mysql/ r, /var/lib/mysql/** rwk,
那么我只需要在下面增加我需要的两个文件夹,就可以顺利开启权限了
/home/base/mysql r, /home/base/mysql/** rwk,
完事之后,记得重启服务
sudo service apparmor restart
这样就OK了