Я хотів би використовувати в Ubuntu та Windows (подвійне завантаження) мої файли баз даних MySql, що знаходяться на розділі NTFS. Чи буде це працювати? Будь-які готчі?
Я хотів би використовувати в Ubuntu та Windows (подвійне завантаження) мої файли баз даних MySql, що знаходяться на розділі NTFS. Чи буде це працювати? Будь-які готчі?
Відповіді:
Так, це працює, але з деякими химерностями. MySQL використовує однакові формати файлів на всіх платформах, тому все, що вам потрібно, - це спільний доступ до каталогу даних. Одна проблема полягає в тому, що в каталозі даних потрібно мати mysql як власника та групи в ubuntu. І Windows не чутливий до регістру, а Linux чутливий до регістру, тому тримайте всі імена однаковими: будь-яке ім'я у всьому чи великому регістрі, але не змішуйте їх.
Від початку до кінця; якщо у вас вже є налаштування, це може знадобитися певного налаштування, щоб відповідати вашим налаштуванням:
sdXN
зараз).Перемістіть каталог даних mysql з Ubuntu до нового розділу.
mkdir /{mountpoint}/mysql_data
sudo mv /var/lib/mysql /{mountpoint/mysql_data
використання mv
збережених дозволів.
Створіть новий каталог mysql
sudo mkdir /var/lib/mysql
Встановіть розділ NTFS на /var/lib/mysql
. Змініть ім’я пристрою на те, що воно отримало під час створення розділу NTFS.
sudo mount /dev/{sdXN} /var/lib/mysql -t ntfs-3g -o uid=mysql,gid=mysql,umask=0077
Для автоматичного навантаження під час завантаження знайдіть UUID розділу та локалізуйте та відредагуйте /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
Змініть шлях "datadir", /etc/mysql/my.cnf
щоб вказати на/var/lib/mysql/mysql_data
Запустіть сервер mysql і протестуйте його.
Відредагуйте конфігураційний файл Windows ( my.ini
) і встановіть "datadir" на X:/mysql_data
(замініть місце, X:
де ви його встановите під Windows).
Складено з теми 1442148 на UF.org .
У мене працює версія Ubuntu; так частково не перевірено, оскільки у мене немає Windows
lower_case_table_names=1
прекрасно працює. Без ваших варіантів монтажу я зіткнувся з цією помилкою (що справді помилка IMHO).
Якщо ви додали розділ Linux до раніше оточуючого середовища лише для Windows, ви можете використовувати базу даних на місці лише з незначними налаштуваннями. Довга версія тут , коротка версія:
Вам потрібно mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysql
буде запуститись при запуску (якщо припустити, що ви встановите накопичувач Windows до /media/windows
використання fstab).
Для того, щоб обійти перевірку розміру журналу innodb, вам потрібно буде перемістити журнали innodb для розділу ubuntu. В my.cnf
, додати innodb_log_group_home_dir = /var/log/mysql
так що журнали йти далі в журнал помилок MySQL.