Как Перенести папку MySQL datadir с базами данных


Иногда необходимо, чтобы база данных 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

Похожие статьи

Написать комментарий

Комментарии

Комментарий нет.