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

11

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

    
задан maaartinus 19.02.2011 в 05:00
источник

2 ответа

9

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

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

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

    
ответ дан Rinzwind 19.08.2011 в 13:48
источник
1

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

    
ответ дан Josiah 13.01.2015 в 15:36