微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有一个问题,将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 举报,一经查实,本站将立刻删除。

相关推荐