Zdarza się, że potrzebujemy przenieść pliki bazy danych w inne miejsce. Na przykład mamy wydzielone dyski macierzowe i na nich mamy mieć tylko bazę.
Standardowo mysql trzyma swoje pliki na katalogu /var/lib/mysql .
Co trzeba zrobić, żeby te pliki umieścić w innym miejscu?
Załóżmy, że naszym nowym katalogiem będzie /dane/mysql
Po pierwsze tworzymy katalog docelowy i nadajemy mu odpowiednie prawa
[codesyntax lang=”bash”]
#mkdir /dane/mysql #chown mysql:mysql /dane/mysql #chmod 700 /dane/mysql
[/codesyntax]
Zatrzymujemy mysql
[codesyntax lang=”bash”]
#service mysql stop
[/codesyntax]
kopiujemy wszystkie pliki na miejsce docelowe
[codesyntax lang=”bash”]#cp -r /var/lib/mysql/* /dane/mysql/[/codesyntax]
oczywiście należy zmienić wpisy w /etc/mysql/my.cnf i wpisać nowy katalog
datadir = /dane/mysql
i na koniec zmieniamy ustawienia AppArmor
[codesyntax lang=”bash”]#mcedit /etc/apparmor.d/usr.sbin.mysqld[/codesyntax]
i dodajemy następujące linie wśród innych udostępnianych katalogów. Pierwsza linia daje prawo d zrobienia ls na katalogu, druga daje dostęp do plików.
[codesyntax lang=”bash”]/dane/mysql/ r,
/dane/mysql/** rwk,
i restartujemy AppArmor i bazę
#service apparmor restart
#service mysql start[/codesyntax]
I działa!!!
W końcu działający poradnik, szczegółem jest wpis AppArmor