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?
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?
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ę.
mkdir /{mountpoint}/mysql_data
sudo mv /var/lib/mysql /{mountpoint/mysql_data
za pomocą mv
zapisuje uprawnienia.
Utwórz nowy katalog mysql
sudo mkdir /var/lib/mysql
Zamontuj partycję NTFS na /var/lib/mysql
. Zmień nazwę urządzenia na otrzymaną po utworzeniu partycji NTFS.
sudo mount /dev/{sdXN} /var/lib/mysql -t ntfs-3g -o uid=mysql,gid=mysql,umask=0077
Aby automatycznie zamontować podczas rozruchu, znajdź identyfikator UUID partycji oraz ustawienia regionalne i edytuj /etc/fstab
.
ls -l /dev/disk/by-uuid
locale -a
sudo gedit /etc/fstab
UUID={number_found_with_the_ls-l} /var/lib/mysql ntfs-3g uid=mysql,gid=mysql,umask=0077,locale={your_locale}.utf8 0 0
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” na X:/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
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.