ค้นหาเว็บไซต์

วิธีถ่ายโอนฐานข้อมูล MySQL ทั้งหมดจากเซิร์ฟเวอร์เก่าไปยังเซิร์ฟเวอร์ใหม่


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

ในบทความนี้ คุณจะได้เรียนรู้วิธีถ่ายโอนหรือย้ายฐานข้อมูล MySQL/MariaDB ทั้งหมดของคุณจากเซิร์ฟเวอร์ Linux เก่าไปยังเซิร์ฟเวอร์ใหม่ นำเข้าได้สำเร็จ และยืนยันว่ามีข้อมูลอยู่

หมายเหตุสำคัญ

  • ตรวจสอบให้แน่ใจว่าได้ติดตั้ง MySQL เวอร์ชันเดียวกันบนเซิร์ฟเวอร์ทั้งสองที่มีการกระจายเดียวกัน
  • ตรวจสอบให้แน่ใจว่ามีพื้นที่ว่างเพียงพอบนเซิร์ฟเวอร์ทั้งสองเพื่อเก็บไฟล์ดัมพ์ฐานข้อมูลและฐานข้อมูลที่นำเข้า
  • อย่าพิจารณาที่จะย้ายไดเร็กทอรี data ของฐานข้อมูลไปยังเซิร์ฟเวอร์อื่น อย่าไปยุ่งกับโครงสร้างภายในของฐานข้อมูล เพราะถ้าทำ คุณจะประสบปัญหาในอนาคต

ส่งออกฐานข้อมูล MySQL ไปยังไฟล์ดัมพ์

ขั้นแรกให้เริ่มด้วยการล็อกอินเข้าสู่เซิร์ฟเวอร์เก่าของคุณและหยุดบริการ mysql/mariadb โดยใช้คำสั่ง systemctl ดังที่แสดง

systemctl stop mariadb
OR
systemctl stop mysql

จากนั้นดัมพ์ฐานข้อมูล MySQL ทั้งหมดของคุณลงในไฟล์เดียวโดยใช้คำสั่ง mysqldump

mysqldump -u [user] -p --all-databases > all_databases.sql

เมื่อดัมพ์เสร็จสิ้น คุณก็พร้อมที่จะถ่ายโอนฐานข้อมูล

หากคุณต้องการดัมพ์ฐานข้อมูลเดียว คุณสามารถใช้:

mysqldump -u root -p --opt [database name] > database_name.sql

ถ่ายโอนไฟล์ดัมพ์ฐานข้อมูล MySQL ไปยังเซิร์ฟเวอร์ใหม่

ตอนนี้ใช้คำสั่ง scp เพื่อถ่ายโอนไฟล์ดัมพ์ฐานข้อมูลของคุณไปยังเซิร์ฟเวอร์ใหม่ภายใต้โฮมไดเร็กทอรีดังที่แสดง

scp all_databases.sql [email :~/       [All Databases]
scp database_name.sql [email :~/       [Singe Database]

เมื่อคุณเชื่อมต่อแล้ว ฐานข้อมูลจะถูกโอนไปยังเซิร์ฟเวอร์ใหม่

นำเข้าไฟล์ดัมพ์ฐานข้อมูล MySQL ไปยังเซิร์ฟเวอร์ใหม่

เมื่อไฟล์ดัมพ์ MySQL ถูกโอนไปยังเซิร์ฟเวอร์ใหม่ คุณสามารถใช้คำสั่งต่อไปนี้เพื่อนำเข้าฐานข้อมูลทั้งหมดของคุณไปยัง MySQL

mysql -u [user] -p --all-databases < all_databases.sql   [All Databases]
mysql -u [user] -p newdatabase < database_name.sql      [Singe Database]

เมื่อการนำเข้าเสร็จสมบูรณ์ คุณสามารถตรวจสอบฐานข้อมูลบนเซิร์ฟเวอร์ทั้งสองได้โดยใช้คำสั่งต่อไปนี้บนเชลล์ mysql

mysql -u user -p
show databases;

ถ่ายโอนฐานข้อมูล MySQL และผู้ใช้ไปยังเซิร์ฟเวอร์ใหม่

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

rsync -avz /var/lib/mysql/* [email :/var/lib/mysql/ 

เมื่อการถ่ายโอนเสร็จสมบูรณ์ คุณสามารถตั้งค่าความเป็นเจ้าของไดเร็กทอรีข้อมูล mysql/mariadb ให้กับผู้ใช้และกลุ่ม mysql จากนั้นสร้างรายการไดเร็กทอรีเพื่อตรวจสอบว่าไฟล์ทั้งหมดได้รับการถ่ายโอนแล้ว

chown mysql:mysql -R /var/lib/mysql/
ls  -l /var/lib/mysql/

วิธีโยกย้ายฐานข้อมูล MySQL โดยใช้ GUI

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

โดยทั่วไปแล้ว เครื่องมือดังกล่าวสนับสนุนวิธีการต่างๆ ในการถ่ายโอนฐานข้อมูลทั้งหมดหรือบางส่วน อาจเป็นการสำรองและกู้คืน การคัดลอกฐานข้อมูล การนำเข้าข้อมูล และการส่งออก เป็นต้น

นอกจากนี้ เครื่องมือย้ายข้อมูล MySQL อาจเป็นโซลูชันแบบสแตนด์อโลนหรือเป็นส่วนหนึ่งของชุดเครื่องมือที่มีประสิทธิภาพมากกว่า เช่น dbForge Studio สำหรับ MySQL ซึ่งเหมาะสมที่จะครอบคลุมงานฐานข้อมูลที่เหลือทั้งหมด

นั่นคือทั้งหมด! ในบทความนี้ คุณได้เรียนรู้วิธีย้ายฐานข้อมูล MySQL/MariaDB ทั้งหมดจากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งอย่างง่ายดาย คุณค้นหาวิธีนี้ได้อย่างไรเมื่อเปรียบเทียบกับวิธีอื่น? เราต้องการรับฟังจากคุณผ่านแบบฟอร์มความคิดเห็นด้านล่างเพื่อติดต่อเรา