Могу ли я поделиться файлами базы данных MySql с Windows при двойной загрузке?

Я хотел бы использовать как в Ubuntu, так и в Windows (двойная загрузка) файлы базы данных MySql, находящиеся в разделе NTFS. Это будет работать? Есть какие-нибудь ошибки?

12
задан 3 March 2013 в 13:12

3 ответа

Да, это работает, но с некоторыми причудами. MySQL использует те же форматы файлов через платформы так все, в чем Вы нуждаетесь, должен совместно использовать каталог данных. Одна проблема состоит в том, что каталог данных должен иметь mysql как владельца и группу в человечности. И Windows нечувствителен к регистру, и Linux чувствителен к регистру, так сохраните всю универсальную форму имен: или целый нижний регистр имени или верхний регистр, но не смешивают их.

От начала до конца; если Вам уже настроили вещи, этому, возможно, понадобилась бы некоторая тонкая настройка для установки установке:

  • Установка и MySQL установки в обеих системах.
  • Остановите mysql сервер, если он работает.
  • Сделайте новый раздел NTFS. Mark имя устройства (давайте назовем его 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. Измените devicename на то, что это получило при создании раздела 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

9
ответ дан 3 March 2013 в 13:12

Если вы добавили раздел 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.

0
ответ дан 3 March 2013 в 13:12

Столкнулся с такой же проблемой. Но я решил это, установив sqlite db в общую папку. Всякий раз, когда мы хотим sqlite для mysql и наоборот. мы можем использовать пакет python pip для его преобразования.

pip install sqlite3-to-mysql

pip install mysql-to-sqlite3

Это все!

0
ответ дан 14 May 2020 в 15:45

Другие вопросы по тегам:

Похожие вопросы: