Как Перенести папку MySQL datadir с базами данных
Опубликовано:
Комментариев: 1
Иногда необходимо, чтобы база данных mysql находилась в каком-то ином месте, от ее стандартного месторасположения. Наиболее весомым аргументом зачем я это делаю является сохранность данных в случае моей пере установки системы, или какого либо повреждения системного диска, после чего не будет представляться возможным восстановить баз данных своих локальных проектов. Следуйте следующим шагам, чтобы перенести datadir в ubuntu
1. Откройте Терминал (думаю тут проблем не возникнет)
2. Остановите MySQL, а то могут быть неприятности
/etc/init.d/mysql stop
3. Переместите существующую директорию (которая кстати расположена тут /var/lib/mysql) в новую директорию /home/user/mysql/ (Вы можете и в другу переместить ;) )при помощи команды:
mv /var/lib/mysql /home/user/mysql/
4. Создайте симлинк из новой директории к старой:
ln -s /home/user/mysql/ /var/lib/mysql
5. Не трогайте /etc/mysql/my.cnf, он для нас не интересен
6. Ubuntu использует программное обеспечение для безопасности под названием AppArmor, которое определяет зоны файловой системы, к которым приложения могут иметь доступ. До тех пор пока мы не изменим профиль программы AppArmor для MySQL, у нас не никогда не получится перезапустить сервер MySQL с новой datadir. Готовы? Ну тогда приступим:
sudo gedit /etc/apparmor.d/usr.sbin.mysqld
Найдите строки:
/var/lib/mysql/ r,
/var/lib/mysql/** rwk,
/var/log/mysql/ r,
/var/log/mysql/* rw,
и замените в них /var/log/mysql/ на новую datadir (директорию, где будут храниться базы данных) в моем варианте это /home/user/mysql/ и выглядит вот так:
/home/user/mysql/ r,
/home/user/mysql/** rwk,
/home/user/mysql/ r,
/home/user/mysql/* rw,
7. Перезапустите профили программы AppArmor
/etc/init.d/apparmor restart
8. И наконец можем перезапустить MySQL:
/etc/init.d/mysql restart
Вот и все, операция должна пройти без ошибок, и изменения вступят в силу. Вот мы и изменили datadir от MySQL в нашей Ubuntu ;)