สถานที่ต่างกันสำหรับฐานข้อมูล MySQL?


18

ฉันสามารถกำหนดค่า MySQL เพื่อจัดเก็บฐานข้อมูลเฉพาะในที่แยกต่างหากบนดิสก์ได้หรือไม่

ฉันยังต้องการให้ฐานข้อมูลใหม่ไปยังตำแหน่งเริ่มต้น แต่มีฐานข้อมูลเฉพาะที่ฉันต้องการเก็บไว้ในโฟลเดอร์ Dropbox ของฉันเพื่อให้สามารถซิงค์ระหว่างคอมพิวเตอร์บางเครื่องได้

ฉันจะทำสิ่งนี้ได้อย่างไร


1
บังเอิญเป็นไปได้ที่จะทำเช่นนี้ในทางอื่น ปล่อยให้ฐานข้อมูลเหมือนเดิมและ symlink ไปจาก Dropbox Dropbox ไม่เข้าใจ symlink จริง ๆ และจะซิงค์ตามปกติ
TRiG

คำตอบ:


27

แน่นอนคุณสามารถ! คุณต้องให้ permisson อ่านหน้าคู่มือln

เก็บข้อมูลฐานข้อมูลใน dirs /var/lib/mysqlแยก ฉันคิดว่าในตอนแรกคุณต้องทำผบ. ที่คุณต้องการวางไฟล์ของฐานข้อมูลที่เลือก ให้สิทธิ์ root, หยุด MySQL deamon:

# /etc/init.d/mysql stop

คัดลอกข้อมูลของคุณไปยังโฟลเดอร์ใหม่:

# cp /var/lib/mysql/DATABASENAME /path/to/new/database/dir

ลบ dir เก่าของคุณออกจากไฟล์ข้อมูล MySQL: ( คำเตือน! เสมอให้ทำการถ่ายโอน SQL ก่อน !!! )

# rm -R /var/lib/mysql/DATABASENAME

สร้าง symlink กลับไปที่ MySQL data dir: ( ระวัง! อ่าน man page ของ ln ก่อน !!! )

# ln -s /full/path/to/new/database/dir /var/lib/mysql/DATABASENAME

หลังจากนั้นคุณก็พร้อมแล้วเริ่ม MySQL ของคุณ:

# /etc/init.d/mysql start

คำเตือน! ถ้า dir ใหม่ของคุณไม่เขียน - และสามารถอ่านได้โดย MySQL ที่จะไม่ทำงาน! ตัวอย่างปัญหาที่พบบ่อย: คุณวางข้อมูลใหม่ของคุณลงในโฟลเดอร์บ้านของคุณโฟลเดอร์บ้านของคุณจะได้รับการป้องกันโดยผู้อื่น (เช่น: drwxrwx --- คุณคือคุณพ่อของคุณ)

ถามว่าคุณต้องการทราบวิธีอื่นเกี่ยวกับวิธีการนี้หรือไม่!


2
ขอบคุณ! ฉันไม่ได้พิจารณา symlinks ฉันยุ่งเกินไปคิดเกี่ยวกับวิธีที่จะทำใน mysql
โคลิน

8
คุณจะต้องแก้ไข/etc/apparmor.d/*mysqldเพื่อรวมไดเรกทอรีใหม่ด้วย จากนั้นsudo service apparmor reloadก่อนรีสตาร์ท MySQL
Kees Cook

3
@ KeesCook ขอบคุณมากสำหรับคำแนะนำผู้ใช้นั่นทำให้ฉันบ้า !! ดูเหมือนว่าจะดีกว่าที่จะใส่ไว้ใน/etc/apparmor.d/local(ในการติดตั้งของฉันมีอยู่แล้ว usr.sbin.mysqld ที่นั่น) เพิ่มหนึ่งเดียว/full/path/to/new/database/dir/** rwk,ก็ทำเพื่อฉัน ...
Tobias J

ขอบคุณมากรายละเอียดของการแก้ไข apparmor ที่นี่ก็มีประโยชน์เช่นกัน ฉันชะลอตัวลงพยายามวางฐานข้อมูลในไดรฟ์ซึ่งไม่ได้ติดตั้งโดยอัตโนมัติตอนบูตและต้องการให้ผู้ใช้รูทเข้าถึง ปฏิเสธที่จะทำงาน แก้ไขfstabแบบนี้เพื่อให้ไดรฟ์นั้นถูกเมาท์ในระบบไฟล์หลังจากบูตตอนนี้ทุกอย่างทำงานได้
กระวาน

3

โปรดจำไว้ว่าถ้าคุณใช้ Ubuntu คุณต้องเพิ่มรายการในไฟล์กำหนดค่า AppArmour /etc/apparmor.d/usr.sbin.mysqld มิฉะนั้นคุณจะได้รับข้อผิดพลาดในการอนุญาตการเขียนแม้ว่าคุณจะเปลี่ยนไฟล์และโฟลเดอร์ สิทธิ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.