Bsdadmin.ru

Записки администратора FreeBSD

Путь на сайте

Домашняя Базы данных Перенос баз данных MySQL в другую папку в FreeBSD

Перенос баз данных MySQL в другую папку в FreeBSD

По умолчанию базы данных MySQL хранятся в папке /var/db/mysql. Нехватка места в папке /var,  при работе с большими базами данных приведет к отказу некоторых служб, в том числе и mysqld.  Так что имеет смысл перенести базы в другую файловую систему большего размера, например в /usr.
 Создаем папки для данных и временных файлов:
#mkdir /usr/local/mysql
#cd /usr/local/mysql
#mkdir data
#mkdir tmp
Останавливаем сервер, предварительно остановив зависимые от него службы:
#/usr/local/etc/rc.d/mysql-server stop
Переносим базы данных:
#cp -R /var/db/mysql/* /usr/local/mysql/data
Задаем владельца и права доступа:
#chown -R mysql:mysql /usr/local/mysql && chmod -R 700 /usr/local/mysql
Переименовываем старую папку с базами данных:
#mv /var/db/mysql /var/db/mysql.old
Задаем новые пути в rc.conf через
#ee  /etc/rc.conf:
mysql_dbdir="/usr/local/mysql/data"
mysql_args="--tmpdir=/usr/local/mysql/tmp"
Задаем новые пути к базам InnoDB в my.cnf 
#ee /etc/my.cnf
Параметры уже есть в файле, ищем поиском и исправляем:
i nnodb_data_home_dir = /usr/local/mysql/
innodb_log_group_home_dir = /usr/local/mysql/
Поиском проверяем наличие других ссылок на /var/db/mysql в файле my.cnf, исправляем если имеются.
Запускаем сервер:
#/usr/local/etc/rc.d/mysql-server start
Проверяем:
#pgrep mysqld
Проверяем файл ошибок сервера: 
#cat /usr/local/mysql/data/$HOST.err
Если базы уже пострадали от нехватки свободного места, запускаем восстановление для баз в формате MyISAM:
#mysqlcheck -A --auto-repair
Проверяем функционирование клиентских приложений.
Удаляем данные в старом месторасположении:
#rm -R /var/db/mysql.old
 

Домашняя Базы данных Перенос баз данных MySQL в другую папку в FreeBSD