이중 부팅시 MySql 데이터베이스 파일을 Windows와 공유 할 수 있습니까?


12

NTFS 파티션에있는 MySql 데이터베이스 파일을 Ubuntu와 Windows (이중 부팅) 모두에서 사용하고 싶습니다. 작동합니까? 어떤 문제가 있습니까?


4
커뮤니티 기록 : 사용자는 Ubuntu Linux와 Microsoft Windows 간의 MySQL 데이터 형식의 호환성에 대해 문의합니다. 사용자는 MySQL 용 Ubuntu Linux 형식으로 저장된 데이터가 Windows 버전의 MySQL이 데이터를 저장하는 방식과 호환되어 데이터베이스 정보를 Windows와 MySQL에서 편집하고 복원 할 수 있는지 궁금합니다.
토마스 워드

A는 : 난 그냥이 질문에 대한 광범위한 대답을 제공 한 여기 에, 유닉스 및 리눅스 StackExchange .
타원형보기

답변:


9

예, 작동하지만 약간의 단점이 있습니다. MySQL은 플랫폼에서 동일한 파일 형식을 사용하므로 데이터 디렉토리를 공유하기 만하면됩니다. 한 가지 문제는 데이터 디렉토리에 우분투에서 mysql이 소유자 및 그룹으로 있어야한다는 것입니다. 또한 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'을로 설정 하십시오 (Windows 에서 마운트 위치를 X:/mysql_data대체 X:하십시오).

UF.org의 주제 1442148에서 컴파일되었습니다 .

우분투 버전이 작동하고 있습니다. Windows가 없기 때문에 부분적으로 테스트되지 않았습니다.


아주 좋은 답변입니다! 단지 두 가지 의견 : 이미 대소 문자가 혼합되어 있으며 lower_case_table_names=1잘 사용 됩니다. 마운트 옵션이 없으면 이 버그가 발생했습니다 (IMHO는 실제로 버그입니다).
maaartinus

"sudo mv / var / lib / mysql / dev / {sdXN} / mysql_data"는 오류를 발생시킵니다. 참조 unix.stackexchange.com/questions/310433/...
타원형보기

1

이전의 Windows 전용 환경에 Linux 파티션을 추가 한 경우 약간의 조정만으로 데이터베이스를 사용할 수 있습니다. 여기에 긴 버전 , 짧은 버전 :

mount --bind '/media/windows/ProgramData/MySQL/MySQL Server 5.5/data' /var/lib/mysql시작시 실행 해야 합니다 ( /media/windowsfstab 을 사용 하여 Windows 드라이브를 마운트한다고 가정 ).

innodb의 로그 크기 확인을 우회하려면 우분투 파티션에 대한 innodb 로그를 이동해야합니다. 에서 my.cnf, 추가 innodb_log_group_home_dir = /var/log/mysql로그는 MySQL의 오류 로그에 다음 갈 정도로.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.