Отправляет email-рассылки с помощью сервиса Sendsay

FreeBSD: полезные заметки

  Все выпуски  

FreeBSD: полезные заметки. Перенос баз данных MySQL в другой каталог


Краткое руководство, поскольку мало кто знает (как оказалось), как сделать это правильно.

1. Я создал необходимые папки в /usr/local, так как в /var было слишком мало места:
# 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

Редактируем файл /etc/rc.conf
mysql_dbdir="/usr/local/mysql/data"
mysql_args="--tmpdir=/usr/local/mysql/tmp"

Задаём новые пути к базам InnoDB (/usr/local/etc/my.cnf)
innodb_data_home_dir = /usr/local/mysql/
innodb_log_group_home_dir = /usr/local/mysql/

На всякий случай проверяем, нет ли иных ссылок на /var/db/mysql в /usr/local/etc/my.cnf.
Запускаем сервер.
# /usr/local/etc/rc.d/mysql-server start

Демон запустился?
# pgrep mysqld
41317

Важно! Следующий запрос в MySQL (вход - # mysql -u root -p) должен показать 0 строк! Иначе в последующем вас ждёт нечто вроде "Got error 28 from storage engine".
# mysql> show variables where value like '%/var/%';
Empty set (0.01 sec)

Если базы повреждены, запускаем (для MyISAM):
# mysqlcheck -A --auto-repair

Если все сайты работают, удаляем бэкап:
# rm -R /var/db/mysql_old



В избранное