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

时间:2017-09-07 10:42:59

标签: mysql debian mariadb

我有一个问题是将Maria DB的默认数据库移动到另一个分区,它似乎很常见,但我尝试了所有我可以没有运气。

在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 ,虽然/etc/apparmor.d/usr.sbin.mysqld文件存在且具有以下规则,但系统上仍未运行:

/home/mysql/ r,
/home/mysql/** rwk,

我甚至尝试创建并清空/var/lib/mysq文件夹,引用此https://github.com/zetbaitsu/Compressor

但是当我开始时,我总是得到同样的错误:

# 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'.

有什么建议吗?

由于

2 个答案:

答案 0 :(得分:1)

由Systemd启动的服务具有由systemd施加的其他文件系统限制。

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

答案 1 :(得分:0)

我有类似的问题:

当我启动mysql服务时,显示一条消息:

mariadb.service的作业失败,因为控制进程退出并显示错误代码。 有关详细信息,请参见“ systemctl status mariadb.service”和“ journalctl -xe”。

如果我再次默认从/etc/mysql/my.cnf更改数据目录; np