我有一个问题,将Maria DB的默认datadir移动到另一个分区,它似乎很常见,但我尝试了一切,我没有运气 .
在Debian 9.1(拉伸)服务器上使用默认的debian软件包( apt-get install mysql-server
)安装Mysql作为Mariadb 10.1.26, mysqld -v
返回 mysqld 10.1.26-MariaDB-0+deb9u1
Default_mysql_datadir: /var/lib/mysql
New_mysql_datadir: /home/mysql
/var/lib/mysql
已安装到“ /
”( /dev/md3
)
/home/mysql
已安装到“ /home
”( /dev/md4
)
我试过的
# systemctl stop mysql
# mv /var/lib/mysql /home
在/etc/mysql/my.cnf中更改datadir
# datadir = /home/mysql
检查权限/权限是否正常
# chown -R mysql.mysql /home/mysql
apparmor is NOT installed 也没有在系统上运行,尽管 /etc/apparmor.d/usr.sbin.mysqld
文件存在且具有以下规则:
/home/mysql/ r,
/home/mysql/** rwk,
我甚至试图创建并清空 /var/lib/mysq
文件夹,引用此bug
但是当我开始时,我总是得到同样的错误:
# systemctl start mysql
[Warning] Can't create test file /home/mysql/<user>.lower-test
#007/usr/sbin/mysqld: Can't change dir to '/home/mysql/' (Errcode: 13 "Permission denied") 2017-09-07 0:16:59 140119808397888 [ERROR] Aborting
mariadb.service: Main process exited, code=exited, status=1/FAILURE
Failed to start MariaDB database server.
mariadb.service: Unit entered failed state.
mariadb.service: Failed with result 'exit-code'.
有什么建议吗?
谢谢
1 回答
Systemd启动的服务具有systemd强加的额外文件系统限制 .
应该可以为systemd [Service]指令ProtectHome =和/或ProtectSystem =和/或ReadWritePaths =提供值来解决此问题 .