我有一个问题是将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'.
有什么建议吗?
由于
答案 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