mysql: я должен изменить mysql tmpdir с /tmp на /var/lib/mysql/tmp
Недавно на одном из серверов prodcution мы видели, что репликация была остановлена из-за проблем с пространством на /tmp
диск, которому выделяется меньше места.
Я хотел бы переместить tmpdir
от /tmp[default]
в /var/lib/mysql/tmp
Ниже я думаю, что я должен сделать.
- остановить MySQL
- создать каталог под названием
tmp
в локации/var/lib/mysql/
- добавлять
tmpdir = /var/lib/mysql/tmp/
- начать 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 подумает, что это база данных...