Перенос баз данных 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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *