Mi piacerebbe usare sia Ubuntu che Windows (dual boot) i miei file di database MySql residenti su una partizione NTFS. Funzionerà? Qualche gotcha?
Mi piacerebbe usare sia Ubuntu che Windows (dual boot) i miei file di database MySql residenti su una partizione NTFS. Funzionerà? Qualche gotcha?
Risposte:
Sì, funziona ma con alcune stranezze. MySQL utilizza gli stessi formati di file su più piattaforme, quindi è sufficiente condividere la directory dei dati. Un problema è che la directory dei dati deve avere mysql come proprietario e gruppo in Ubuntu. E Windows non fa distinzione tra maiuscole e minuscole e Linux fa distinzione tra maiuscole e minuscole, quindi mantieni tutti i nomi uniformi: l'intero nome in minuscolo o maiuscolo ma non mescolarli.
Dall'inizio alla fine; se hai già impostato le cose, potrebbe essere necessario apportare alcune modifiche per adattarle alla tua configurazione:
sdXN
per ora).Spostare la directory dei dati mysql da Ubuntu nella nuova partizione.
mkdir /{mountpoint}/mysql_data
sudo mv /var/lib/mysql /{mountpoint/mysql_data
utilizzando le mv
autorizzazioni di salvataggio.
Crea una nuova directory mysql
sudo mkdir /var/lib/mysql
Montare la partizione NTFS su /var/lib/mysql
. Cambia il nome devic in quello che ha ottenuto quando hai creato la partizione NTFS.
sudo mount /dev/{sdXN} /var/lib/mysql -t ntfs-3g -o uid=mysql,gid=mysql,umask=0077
Per il montaggio automatico all'avvio, individuare l'UUID della partizione, le impostazioni internazionali e la modifica /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
Modificare il percorso "datadir" in /etc/mysql/my.cnf
in modo che punti/var/lib/mysql/mysql_data
Avviare il server mysql e testarlo.
Modifica il file di configurazione di Windows ( my.ini
) e imposta 'datadir' su X:/mysql_data
(sostituisci X:
per dove lo monti sotto Windows).
Compilato dall'argomento 1442148 su UF.org .
Ho fatto funzionare la versione di Ubuntu; così parzialmente non testato dal momento che non ho Windows
lower_case_table_names=1
funziona bene. Senza le tue opzioni di mount mi sono imbattuto in questo bug (che è davvero un errore di IMHO).
Se hai aggiunto una partizione Linux a un ambiente precedentemente solo per Windows, puoi utilizzare il database in atto con solo alcune piccole modifiche. Versione lunga qui , versione corta:
Dovrai mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysql
eseguire all'avvio (supponendo che tu monti il tuo drive Windows per /media/windows
usare fstab).
Per aggirare il controllo della dimensione del registro di innodb, dovrai spostare i registri di innodb per la partizione ubuntu. In my.cnf
, aggiungi in innodb_log_group_home_dir = /var/log/mysql
modo che i log vadano accanto al log degli errori mysql.