Czy mogę udostępniać pliki bazy danych MySql w systemie Windows podczas podwójnego rozruchu?
12
Chciałbym używać zarówno Ubuntu, jak i Windows (podwójnego rozruchu) moich plików bazy danych MySql znajdujących się na partycji NTFS. Czy to zadziała? Jakieś gotcha?
DLA REJESTRU WSPÓLNOTY: Użytkownik pyta o zgodność formatów danych MySQL między Ubuntu Linux a Microsoft Windows. Użytkownik zastanawia się, czy dane przechowywane w formacie Ubuntu Linux dla MySQL są zgodne ze sposobem, w jaki wersja MySQL w systemie Windows przechowuje dane, aby można było edytować i przywracać dane bazy danych zarówno w systemie Windows, jak i MySQL.
Thomas Ward
Odp .: Właśnie podałem obszerną odpowiedź na to pytanie tutaj , w StackExchange dla systemów Unix i Linux .
Eliptyczny widok
Odpowiedzi:
9
Tak, działa, ale z pewnymi dziwactwami. MySQL używa tych samych formatów plików na różnych platformach, więc wystarczy udostępnić katalog danych. Jednym z problemów jest to, że katalog danych musi mieć mysql jako właściciela i grupę w Ubuntu. W systemie Windows nie jest rozróżniana wielkość liter, a w systemie Linux rozróżniana jest wielkość liter, więc zachowaj jednolitość wszystkich nazw: całą nazwę małymi lub dużymi literami, ale nie mieszaj ich.
Od początku do końca; jeśli masz już skonfigurowane ustawienia, może to wymagać drobnych poprawek w celu dopasowania do konfiguracji:
Zainstaluj i skonfiguruj MySQL w obu systemach.
Zatrzymaj serwer mysql, jeśli jest uruchomiony.
Utwórz nową partycję NTFS. Zaznacz nazwę urządzenia (nazwijmy to sdXNna razie).
Przenieś katalog danych mysql z Ubuntu na nową partycję.
Bardzo ładna odpowiedź! Tylko dwa komentarze: Istnieje już wiele różnych nazw liter i używanie lower_case_table_names=1go działa dobrze. Bez opcji montowania natknąłem się na ten błąd (który w rzeczywistości jest błędem IMHO).
Jeśli dodałeś partycję linux do środowiska, które wcześniej było tylko w systemie Windows, możesz użyć bazy danych z kilkoma drobnymi poprawkami. Długa wersja tutaj , krótka wersja:
Musisz mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysqluruchomić przy starcie (zakładając, że zamontujesz dysk systemu Windows /media/windowsza pomocą fstab).
Aby obejść sprawdzanie rozmiaru dziennika innodb, musisz przenieść dzienniki innodb dla partycji Ubuntu. W my.cnfdodaj, innodb_log_group_home_dir = /var/log/mysqlaby dzienniki były wyświetlane obok dziennika błędów mysql.
Odpowiedzi:
Tak, działa, ale z pewnymi dziwactwami. MySQL używa tych samych formatów plików na różnych platformach, więc wystarczy udostępnić katalog danych. Jednym z problemów jest to, że katalog danych musi mieć mysql jako właściciela i grupę w Ubuntu. W systemie Windows nie jest rozróżniana wielkość liter, a w systemie Linux rozróżniana jest wielkość liter, więc zachowaj jednolitość wszystkich nazw: całą nazwę małymi lub dużymi literami, ale nie mieszaj ich.
Od początku do końca; jeśli masz już skonfigurowane ustawienia, może to wymagać drobnych poprawek w celu dopasowania do konfiguracji:
sdXN
na razie).Przenieś katalog danych mysql z Ubuntu na nową partycję.
za pomocą
mv
zapisuje uprawnienia.Utwórz nowy katalog mysql
Zamontuj partycję NTFS na
/var/lib/mysql
. Zmień nazwę urządzenia na otrzymaną po utworzeniu partycji NTFS.Aby automatycznie zamontować podczas rozruchu, znajdź identyfikator UUID partycji oraz ustawienia regionalne i edytuj
/etc/fstab
.Zmień ścieżkę „datadir” na,
/etc/mysql/my.cnf
aby wskazywała/var/lib/mysql/mysql_data
Uruchom serwer mysql i przetestuj go.
Zmodyfikuj plik konfiguracyjny systemu Windows (
my.ini
) i ustaw „datadir” naX:/mysql_data
(zamieńX:
na miejsce, w którym montujesz go pod Windows).Opracowano z tematu 1442148 na UF.org .
Mam działającą wersję Ubuntu; więc częściowo niesprawdzone, ponieważ nie mam systemu Windows
źródło
lower_case_table_names=1
go działa dobrze. Bez opcji montowania natknąłem się na ten błąd (który w rzeczywistości jest błędem IMHO).Jeśli dodałeś partycję linux do środowiska, które wcześniej było tylko w systemie Windows, możesz użyć bazy danych z kilkoma drobnymi poprawkami. Długa wersja tutaj , krótka wersja:
Musisz
mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysql
uruchomić przy starcie (zakładając, że zamontujesz dysk systemu Windows/media/windows
za pomocą fstab).Aby obejść sprawdzanie rozmiaru dziennika innodb, musisz przenieść dzienniki innodb dla partycji Ubuntu. W
my.cnf
dodaj,innodb_log_group_home_dir = /var/log/mysql
aby dzienniki były wyświetlane obok dziennika błędów mysql.źródło