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

วิธีสำรองและกู้คืนฐานข้อมูล MySQL/MariaDB ใน Linux


บทความนี้แสดงตัวอย่างที่เป็นประโยชน์หลายประการเกี่ยวกับวิธีดำเนินการสำรองข้อมูลต่างๆ ของฐานข้อมูล MySQL/MariaDB โดยใช้คำสั่ง mysqldump และเราจะดูวิธีเรียกคืนข้อมูลเหล่านั้นด้วยความช่วยเหลือของ คำสั่ง mysql และ mysqlimport ใน Linux

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

เราถือว่าคุณได้ติดตั้ง MySQL บนระบบ Linux ที่มีสิทธิ์ระดับผู้ดูแลระบบอยู่แล้ว และเราเชื่อว่าคุณมีความรู้เกี่ยวกับ MySQL เพียงเล็กน้อยอยู่แล้ว .

หากคุณไม่ได้ติดตั้ง MySQL หรือไม่สามารถเข้าถึง MySQL โปรดอ่านบทความของเราด้านล่าง

  • วิธีการติดตั้ง MySQL บนการกระจายแบบใช้ RHEL
  • วิธีการติดตั้ง MySQL บน Rocky Linux และ AlmaLinux
  • วิธีการติดตั้ง MySQL ใน Ubuntu Linux
  • วิธีการติดตั้ง MySQL บน Debian
  • 20 คำสั่ง MySQL (Mysqladmin) สำหรับการดูแลฐานข้อมูลใน Linux
  • 12 แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย MySQL/MariaDB สำหรับ Linux

จะสำรองฐานข้อมูล MySQL ใน Linux ได้อย่างไร?

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

mysqldump -u [username] –p[password] [database_name] > [dump_file.sql]

พารามิเตอร์ของคำสั่งดังกล่าวมีดังนี้

  • [ชื่อผู้ใช้] : ชื่อผู้ใช้ MySQL ที่ถูกต้อง
  • [รหัสผ่าน] : รหัสผ่าน MySQL ที่ถูกต้องสำหรับผู้ใช้
  • [database_name] : ชื่อฐานข้อมูลที่ถูกต้องที่คุณต้องการสำรองข้อมูล
  • [dump_file.sql]: ชื่อของไฟล์ดัมพ์สำรองที่คุณต้องการสร้าง

จะสำรองฐานข้อมูล MySQL เดียวได้อย่างไร

หากต้องการสำรองข้อมูลฐานข้อมูลเดียวให้ใช้คำสั่งดังต่อไปนี้ คำสั่งจะดัมพ์โครงสร้างฐานข้อมูล [rsyslog] พร้อมข้อมูลลงในไฟล์ดัมพ์ไฟล์เดียวที่เรียกว่า rsyslog.sql

mysqldump -u root -ptecmint rsyslog > rsyslog.sql

จะสำรองฐานข้อมูล MySQL หลายฐานข้อมูลได้อย่างไร

หากคุณต้องการสำรองข้อมูลหลายฐานข้อมูล ให้รันคำสั่งต่อไปนี้ คำสั่งตัวอย่างต่อไปนี้จะสำรองข้อมูลโครงสร้างฐานข้อมูล [rsyslog, syslog] และข้อมูลไว้ในไฟล์เดียวที่เรียกว่า rsyslog_syslog.sql

mysqldump -u root -ptecmint --databases rsyslog syslog > rsyslog_syslog.sql

จะสำรองฐานข้อมูล MySQL ทั้งหมดได้อย่างไร

หากคุณต้องการสำรองข้อมูลฐานข้อมูลทั้งหมด ให้ใช้คำสั่งต่อไปนี้พร้อมกับตัวเลือก –all-database คำสั่งต่อไปนี้จะนำการสำรองข้อมูลฐานข้อมูลทั้งหมดที่มีโครงสร้างและข้อมูลไปไว้ในไฟล์ชื่อ all-databases.sql

mysqldump -u root -ptecmint --all-databases > all-databases.sql

จะสำรองโครงสร้างฐานข้อมูล MySQL เท่านั้นได้อย่างไร

หากคุณต้องการสำรองข้อมูลโครงสร้างฐานข้อมูลโดยไม่มีข้อมูล ให้ใช้ตัวเลือก –no-data ในคำสั่ง คำสั่งด้านล่างส่งออกฐานข้อมูล [rsyslog] โครงสร้าง เป็นไฟล์ rsyslog_structure.sql

mysqldump -u root -ptecmint -–no-data rsyslog > rsyslog_structure.sql

วิธีการสำรองข้อมูลฐานข้อมูล MySQL เท่านั้น?

หากต้องการสำรองฐานข้อมูล ข้อมูลที่ไม่มีโครงสร้าง ให้ใช้ตัวเลือก –no-create-info พร้อมกับคำสั่ง คำสั่งนี้นำฐานข้อมูล [rsyslog] ข้อมูล ไปไว้ในไฟล์ rsyslog_data.sql

mysqldump -u root -ptecmint --no-create-db --no-create-info rsyslog > rsyslog_data.sql

จะสำรองฐานข้อมูลตารางเดียวได้อย่างไร

ด้วยคำสั่งด้านล่าง คุณสามารถสำรองข้อมูลตารางเดียวหรือตารางเฉพาะของฐานข้อมูลของคุณได้ ตัวอย่างเช่น คำสั่งต่อไปนี้จะสำรองข้อมูลตาราง wp_posts จากฐานข้อมูล wordpress เท่านั้น

mysqldump -u root -ptecmint wordpress wp_posts > wordpress_posts.sql

จะสำรองฐานข้อมูลหลายตารางได้อย่างไร

หากคุณต้องการสำรองข้อมูลหลายตารางหรือบางตารางจากฐานข้อมูล ให้แยกแต่ละตารางด้วยช่องว่าง

mysqldump -u root -ptecmint wordpress wp_posts wp_comments > wordpress_posts_comments.sql

วิธีการสำรองข้อมูลฐานข้อมูล MySQL ระยะไกล

คำสั่งด้านล่างจะนำการสำรองข้อมูลของเซิร์ฟเวอร์ระยะไกล [172.16.25.126] ฐานข้อมูล [แกลเลอรี] ไปยังเซิร์ฟเวอร์ภายในเครื่อง

mysqldump -h 172.16.25.126 -u root -ptecmint gallery > gallery.sql

จะคืนค่าฐานข้อมูล MySQL ได้อย่างไร?

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

# mysql -u [username] –p[password] [database_name] < [dump_file.sql]

วิธีคืนค่าฐานข้อมูล MySQL เดี่ยว

หากต้องการกู้คืนฐานข้อมูล คุณต้องสร้างฐานข้อมูลว่างบนเครื่องเป้าหมายและกู้คืนฐานข้อมูลโดยใช้คำสั่ง msyql ตัวอย่างเช่น คำสั่งต่อไปนี้จะกู้คืนไฟล์ rsyslog.sql ไปยังฐานข้อมูล rsyslog

mysql -u root -ptecmint rsyslog < rsyslog.sql

หากคุณต้องการกู้คืนฐานข้อมูลที่มีอยู่แล้วในเครื่องเป้าหมาย คุณจะต้องใช้คำสั่ง mysqlimport

mysqlimport -u root -ptecmint rsyslog < rsyslog.sql

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