今天测试环境,新装Ubuntu server 22.04 ,apt-get 安装 mysql-server-8.0,无意外,正常启动。
挂载新硬盘,修改MySQL配置文件。
1 | /etc/mysql/mysql.conf.d/mysqld.cnf |
停止MySQL, cp -a原来MySQL的数据文件到新挂在的目录 /data/mysql
1 | service mysql start |
1 | Can't create test file /data/mysql/mysqld_tmp_file_case_insensitive_test.lower-test |
1 | journalctl -xe |
查看错误。
1 | AVC apparmor="DENIED" operation="mknod" profile="/usr/sbin/mysqld" name="/data/mysql/mysqld_tmp_file_case_insensitive_test.lower-test" pid=3105 comm="mysqld" requested_mas |
检测新目录的文件属组,重新chown -R mysql:mysql mysql 没有解决。
下面记录解决方法:
Ubuntu 上面存在一个叫apparmor的安全软件,管理着软件的读写权限,
打开配置文件
1 | /etc/apparmor.d/usr.sbin.mysqld |
可以看到里面有Allow data dir access 的配置
在下面加上新目录
1 2 | /data/mysql/ r, /data/mysql/** rwk, |
重启
1 2 | service apparmor restart service mysql start |
一切正常。
发现自己在2014年已经踩过这个坑了,现在是健忘啊。
ubuntu 修改mysql 数据储存路径
转载请注明:果果.IT » 解决Ubuntu 修改MySQL datadir后无法启动