我有一个问题,将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
虽然/etc/apparmor.d/usr.sbin.MysqLd文件存在且具有以下规则,但未在系统上安装或运行apparmor:
/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'.
有什么建议吗?
谢谢
解决方法:
必须在systemd配置文件中设置ProtectHome = false才能将datadir移动到/ home目录.
根据Debian策略规则,您应该在/etc/systemd/system/mariadb.service.d/YOUR_CUSTOM_FILE.conf等自定义文件中设置此选项值,其中包含:
[Service]
# Prevent accessing /home, /root and /run/user
ProtectHome=false
然后重新加载systemctl守护进程:
systemctl daemon-reload
之后,您应该能够将MariaDB datadir从/ var / lib / MysqL更改为/ home / MysqL.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。