mariaDB 10.0 升级到 10.1 后,mysql 无法再写入 tmpdir

mariaDB 10.0 升级到 10.1 后,mysql 无法再写入 tmpdir

我订购了一台安装了 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

相关链接

相关内容