我订购了一台安装了 mariaDB 10.0 的新服务器。我编辑了 /etc/my.cnf,将 tmpdir 更改为 /home/mysql_tmp_dir(由 mysql:mysql 拥有)。一切正常。
已升级到 mariaDB 10.1.37,并且 tmpdir 不再可写入:
[错误] mysqld:无法创建/写入文件‘/home/mysql_tmp_dir/ibV9SvJP’(错误代码:13“权限被拒绝”)
这当然会导致各种问题,主要是innodb引擎无法加载。
注释掉 tmpdir 以恢复为默认值并重新启动暂时解决了该问题。但是,我不知道为什么会发生这种情况以及如何解决它。
我需要一个更大的 tmpdir,否则在优化大型数据库时它会被填满,这当然会导致 mysql 锁定,直到释放空间为止。
答案1
在早期的 10.1 版本中,MariaDB 添加了一些 systemd 强化功能,其中之一就是保护主目录的设置,
尝试这个
awk '/Protect/' /usr/lib/systemd/system/mariadb.service
如果你看到ProtectHome=true
,你可以将 tmpdir 移动到其他地方,或者添加
// File: /etc/systemd/system/mariadb.service.d/protecthome.conf
[Service]
ProtectHome=false
相关链接