Перенос баз данных Mysql на другой диск | FreeBSD, MYSQL
Кратко ситуация: начал сыпаться диск на рабочей машине с mysql. В результате бьются таблицы, repair не помогает. Надо остановить машину, запустить fsck, но доступ к машине только по шеллу. Размонтировать var система не дает, исправить ошибки на неразмонтироавнной ФС нельзя. В принципе все работает кроме БД, следовательно принято решение оставить var в покое и перенести базы на другой диск (благо он смонтирован для бэкапа). Копирую себе на заметку мануал по переносу баз mysql.
Для начала можно посмотреть где базы:
mysql> show variables like 'datadir';
+---------------+----------------+
| Variable_name | Value |
+---------------+----------------+
| datadir | /var/db/mysql/ |
+---------------+----------------+
1 row in set (0.00 sec)
Останавливаем mysql копируем каталог с базами, меняем права доступа.
/usr/local/etc/rc.d/mysql-server stop
cp -R /var/db/mysql /data/mysql
chown -R mysql:mysql /data/mysql
Добавим ключ запуска mysql с указанием где лежат базы.
echo 'mysql_dbdir="/usr/mysql"' >> /etc/rc.conf
Запускаемся. Проверяем.
mysql> show variables like 'datadir';
+---------------+-------------+
| Variable_name | Value |
+---------------+-------------+
| datadir | /data/mysql/ |
+---------------+-------------+
1 row in set (0.01 sec)
Чекаем базу.
mysqlcheck -Aor -p
Все должно заработать.