После обновления 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 добавила защиту системы, одним из которых была установка для защиты homedir,
Попробуй это
awk '/Protect/' /usr/lib/systemd/system/mariadb.service
Если ты видишь ProtectHome=true
, вы можете переместить tmpdir куда-нибудь еще или добавить
// File: /etc/systemd/system/mariadb.service.d/protecthome.conf
[Service]
ProtectHome=false
Ссылки по теме