3

I ordered a new server that came with mariaDB 10.0 installed. I edited /etc/my.cnf to change the tmpdir to /home/mysql_tmp_dir (owned by mysql:mysql). All worked fine.

Did upgrade to mariaDB 10.1.37 and the tmpdir can no longer be written to:

[ERROR] mysqld: Can't create/write to file '/home/mysql_tmp_dir/ibV9SvJP' (Errcode: 13 "Permission denied")

This of course caused all kinds of problems, mainly that innodb engine was unable to load.

Commenting tmpdir out to revert to the default and restarting temporarily resolved the issue. But, I am at a loss as to why this happened and how to resolve it.

I need a larger tmpdir, otherwise it fills up when optimizing large databases, which of course causes mysql to lock up until space is freed.

vicos
  • 31
  • 1

1 Answers1

1

In earlier 10.1 release MariaDB added some systemd hardening, one of those was the setting to protect the homedir,

Try this

awk '/Protect/' /usr/lib/systemd/system/mariadb.service

If you see ProtectHome=true, you can either move the tmpdir somewhere else, or add

// File: /etc/systemd/system/mariadb.service.d/protecthome.conf
[Service]
ProtectHome=false

Related links

Ryan Gibbons
  • 998
  • 9
  • 20