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:
sdXNna razie).Przenieś katalog danych mysql z Ubuntu na nową partycję.
mkdir /{mountpoint}/mysql_data
sudo mv /var/lib/mysql /{mountpoint/mysql_data
za pomocą mvzapisuje 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.cnfaby 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=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.