Czy mogę skonfigurować MySQL do przechowywania określonej bazy danych w oddzielnym miejscu na dysku?
Nadal chcę, aby wszelkie nowe bazy danych trafiły do domyślnej lokalizacji, ale w folderze Dropbox chcę przechowywać określoną bazę danych, aby mogła być zsynchronizowana między kilkoma komputerami.
W jaki sposób mogę to zrobić?
Odpowiedzi:
Oczywiście, że możesz! Musisz przyznać uprawnienia roota . Przeczytaj ln stron podręcznika.
MySQL przechowuje dane bazy danych w oddzielnych katalogach w
/var/lib/mysql
. Myślę, że najpierw musiałeś stworzyć katalog, w którym chcesz umieścić wybrane pliki bazy danych. Przyznaj uprawnienia do rootowania, zatrzymaj deamon MySQL:Skopiuj dane do nowego folderu:
Usuń stary katalog z plików danych MySQL: ( Uwaga! ZAWSZE najpierw zrzuć SQL !!! )
Utwórz symboliczny link z powrotem do danych MySQL reż: ( Uwaga! Najpierw przeczytaj stronę podręcznika ln !!! )
Po tym, jesteś gotowy, uruchom MySQL:
Ostrzeżenie! Jeśli twój nowy katalog nie jest zapisywany i czytelny przez MySQL, to nie zadziała! Przykład, częsty problem: umieszczasz nowy katalog danych w folderze domowym, folder domowy jest chroniony przed innymi przez odczytu (np. Drwxrwx --- you youdir).
Zapytaj, czy chcesz dowiedzieć się więcej o tej metodzie!
źródło
/etc/apparmor.d/*mysqld
aby uwzględnić również nowy katalog. Następniesudo service apparmor reload
przed ponownym uruchomieniem MySQL./etc/apparmor.d/local
(w mojej instalacji jest już usr.sbin.mysqld), dodanie jednego/full/path/to/new/database/dir/** rwk,
zrobiło to dla mnie ...fstab
jak to tak, że dysk został zamontowany w systemie plików po starcie, teraz wszystko działa.Należy pamiętać, że jeśli używasz Ubuntu, musisz również dodać wpis w pliku konfiguracyjnym AppArmour /etc/apparmor.d/usr.sbin.mysqld, w przeciwnym razie będziesz nadal otrzymywać błędy uprawnień do zapisu, nawet jeśli zmienisz pliki i folder uprawnienia.
źródło