Как Перенести папку 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 ;)