首页 文章

MySql / MariaDB无法更改Debian 9.1服务器上的默认datadir

提问于
浏览
2

我有一个问题,将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 回答

  • 1

    Systemd启动的服务具有systemd强加的额外文件系统限制 .

    应该可以为systemd [Service]指令ProtectHome =和/或ProtectSystem =和/或ReadWritePaths =提供值来解决此问题 .

相关问题