mysql: я должен изменить mysql tmpdir с /tmp на /var/lib/mysql/tmp

Недавно на одном из серверов prodcution мы видели, что репликация была остановлена ​​из-за проблем с пространством на /tmp диск, которому выделяется меньше места.

Я хотел бы переместить tmpdir от /tmp[default] в /var/lib/mysql/tmp

Ниже я думаю, что я должен сделать.

  1. остановить MySQL
  2. создать каталог под названием tmp в локации /var/lib/mysql/
  3. добавлять tmpdir = /var/lib/mysql/tmp/
  4. начать MySQL

Есть ли что-то, что нужно позаботиться об уровне разрешения /var/lib/mysql/tmp/?

4 ответа

Below are what I guess I should do.

 1. stop mysql
 2. create directory called `tmp` in the location `/var/lib/mysql/`
 3. add `tmpdir = /var/lib/mysql/tmp/`
 4. start mysql

Вы можете объединить 1. до 4., перезапустив MySQL после изменения.

О 2, вы должны поставить tmpdir вне datadir,

Есть ли что-то, что нужно позаботиться об уровне разрешения /var/lib/mysql/tmp/?

chown mysql:mysql /path/to/tmp/dir достаточно.

Посетите этот блог для получения подробных сведений о настройках apparmor и my.cnf, http://sharadchhetri.com/2014/12/27/change-path-tmpdir-mysql-server-ubuntu/

Сначала проверьте папку tmp dir

SHOW VARIABLES LIKE 'tmpdir';

Создайте резервную копию my.cnf

sudo cp -pv /etc/mysql/my.cnf /etc/mysql/my.cnf.`date +%F`.bak

Создайте новый каталог для хранения файлов

sudo mkdir /mysql_tmp_dir

Сделайте пользователя mysql владельцем каталога sudo chown mysql:mysql /mysql_tmp_dir

редактировать my.cnf

заменить,

 sudo vim /etc/mysql/my.cnf
 tmpdir = /tmp 

с

 tmpdir = /mysql_tmp_dir

редактировать конфигурацию apparmor для mysqld

sudo vi /etc/apparmor.d/usr.sbin.mysqld

добавить строки,

/mysql_tmp_dir r,  
/mysql_tmp_dir rw

перезапустите apparmor и mysql

sudo service apparmor restart
sudo service mysql restart

Чтобы убедиться, что изменения работали нормально,

SHOW VARIABLES LIKE 'tmpdir';

Бинго! И это должно отобразить путь для нового tmpdir

Это не рекомендуется. По умолчанию /tmp будет смонтирован из tmpfs, и mysql будет использовать это для очень больших запросов и т. Д. Наличие в tmpfs означает, что IOPS ударит RAM вместо вашего жесткого диска или SSD. Это повышает производительность и не приводит к реальным недостаткам, поскольку данные, хранящиеся в tmpdir, подходят для энергозависимых хранилищ. Если вы максимизируете размер вашего /tmp, я бы порекомендовал вам написать ваши запросы для большей эффективности или увеличить размер вашего /tmp через fstab, если у вас есть свободное ОЗУ. Если это решение не работает, не стесняйтесь определять свое собственное местоположение tmpdir и указывать его на диск с большим разделением.

Если вы создадите tmp в /var/lib/mysql, mysqld подумает, что это база данных...

Другие вопросы по тегам