我可以在Windows双重引导中共享MySql数据库文件吗?


12

我想在Ubuntu和Windows(双启动)中都使用驻留在NTFS分区上的MySql数据库文件。能行吗 有问题吗?


4
对于社区的记录:用户正在询问Ubuntu Linux和Microsoft Windows之间MySQL数据格式的兼容性。用户想知道以MySQL的Ubuntu Linux格式存储的数据是否与Windows版本的MySQL存储数据的方式兼容,以便可以在Windows和MySQL上编辑和还原数据库信息。
托马斯·沃德

答:我刚才已经提供了广泛的这个问题的答案在这里,在Unix的和Linux StackExchange
椭圆视图

Answers:


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。将设备名称更改为创建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下的安装位置)。

UF.org上的主题1442148编译。

我可以使用Ubuntu版本。由于没有Windows,因此部分未经测试


很好的答案!仅有两条评论:已经有很多混合大小写的名称,使用lower_case_table_names=1它可以很好地工作。如果没有安装选项,我会遇到此错误(恕我直言,这确实是一个错误)。
maaartinus 2012年

“ sudo mv / var / lib / mysql / dev / {sdXN} / mysql_data”给出错误。见unix.stackexchange.com/questions/310433/...
椭圆鉴于

1

如果您已将Linux分区添加到以前的仅Windows环境中,则只需进行一些细微调整即可使用数据库。长版在这里,短版:

您需要mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysql在启动时运行(假设您将Windows驱动器安装为/media/windows使用fstab)。

为了绕过innodb的日志大小检查,您需要移动ubuntu分区的innodb日志。在中my.cnf,添加,innodb_log_group_home_dir = /var/log/mysql以便日志转至mysql错误日志旁边。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.