ฉันต้องการใช้ทั้งใน Ubuntu และ Windows (บูตคู่) ไฟล์ฐานข้อมูล MySql ของฉันที่อยู่ในพาร์ติชัน NTFS มันจะทำงานอย่างไร gotchas ใด ๆ
ฉันต้องการใช้ทั้งใน Ubuntu และ Windows (บูตคู่) ไฟล์ฐานข้อมูล MySql ของฉันที่อยู่ในพาร์ติชัน NTFS มันจะทำงานอย่างไร gotchas ใด ๆ
คำตอบ:
ใช่มันใช้งานได้ แต่มีนิสัยแปลก ๆ 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
เพื่อ automount ในการบูตหาพาร์ทิชัน 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 และทดสอบ
แก้ไขไฟล์my.ini
กำหนดค่าWindows ( ) และตั้งค่า '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 drive ของคุณเพื่อ/media/windows
ใช้ fstab)
ในการตรวจสอบขนาดบันทึกของ Innodb คุณจะต้องย้ายบันทึก Innodb สำหรับพาร์ติชัน Ubuntu ในmy.cnf
เพิ่มinnodb_log_group_home_dir = /var/log/mysql
เพื่อให้บันทึกไปติดกับบันทึกข้อผิดพลาด mysql