Skip to main content

Mysqldump คืออะไรและฉันจะใช้มันได้อย่างไร?

How to use the mysqldump command - a working example (อาจ 2025)

How to use the mysqldump command - a working example (อาจ 2025)
Anonim

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

mysqldump คืออะไรใช้สำหรับ?

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

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

เอกสาร MySQL มีรายชื่อวิธีการอื่น ๆ ในการทำสำรอง แต่เหล่านี้ทั้งหมดมีข้อเสียของตัวเอง:

  • การสร้างฐานข้อมูลแบบ Hotcopying จาก MySQL Enterprise เป็นวิธีที่ยอดเยี่ยมในการสำรองข้อมูลเหล่านี้ … หากคุณไม่เข้าใจป้ายราคา Enterprise
  • การทำสำเนาไดเร็กทอรีข้อมูลของ DB อาจยุ่งยากหากคุณกำลังเคลื่อนย้ายระบบปฏิบัติการเนื่องจากจุดหมายปลายทางจะแตกต่างกัน
  • การส่งออกไปยังแฟ้มข้อความที่คั่นด้วยจะให้เนื้อหา แต่คุณจะต้องสร้างโครงสร้างด้วยตัวเอง และคุณควรจะทำให้ถูกต้อง …
  • คุณสามารถสำรองฐานข้อมูลจากโปรแกรม GUI เช่น MySQL Workbench ได้บ่อยๆ แต่นี่เป็นขั้นตอนด้วยตนเองนั่นคือไม่ใช่สิ่งที่คุณสามารถทำเป็นสคริปต์หรือรวมไว้ในชุดงานได้

การติดตั้งเครื่องมือ mysqldump

หากคุณสนใจในบทความนี้มีโอกาสที่คุณได้ติดตั้ง MySQL แล้ว ถ้าเป็นเช่นนั้นข่าวดี - คุณมีอยู่แล้ว mysqldump! ถ้าไม่คุณสามารถติดตั้ง MySQL ได้ในแบบมาตรฐานสำหรับระบบปฏิบัติการของคุณ

สำหรับ Windows ให้ตรวจดูคำแนะนำของเราที่นี่เพื่อติดตั้ง MySQL บน Windows 7 (ขั้นตอนการติดตั้งยังคงเหมือนเดิม) ในทำนองเดียวกันกับ macOS ดูคำแนะนำในการติดตั้ง MySQL บน macOS 10.7 (อีกครั้ง แต่ยังคงใช้งานได้) ผู้ใช้ระบบ Linux ที่ใช้อูบุนตูสามารถใช้คำสั่งต่อไปนี้เพื่อติดตั้ง MySQL client และ utility:

sudo apt ติดตั้ง mysql-client

การแยก MySQL Dump

เมื่อติดตั้งแล้วคุณสามารถใช้ mysqldump เพื่อรับการสำรองข้อมูลเต็มรูปแบบของฐานข้อมูลของคุณ

mysqldump -h ชื่อโฮสต์ DB หรือ IP -u ชื่อผู้ใช้ DB -p ชื่อฐานข้อมูล> db_backup.sql

ลองแบ่งคำสั่งนี้ลงเล็กน้อย:

  • "ชั่วโมง": แฟลกนี้เป็นฐานข้อมูล เจ้าภาพ. อาจเป็นชื่อโฮสต์แบบเต็ม (เช่น myhost.domain.com) หรือที่อยู่ IP นอกจากนี้คุณสามารถเว้นว่างไว้หากคุณใช้งานโฮสต์เดียวกันกับเซิร์ฟเวอร์ MySQL
  • "-ยู": ตามที่กล่าวมานี้เป็นของคุณ ชื่อผู้ใช้.
  • "-p": ถ้าคุณได้รับการติดตั้ง MySQL อย่างถูกต้องคุณจะต้องมี รหัสผ่าน เพื่อเชื่อมต่อ ค่าสถานะนี้ไม่มีอาร์กิวเมนต์จะแจ้งให้คุณใส่รหัสผ่านเมื่อคุณรันคำสั่ง บางครั้งการใส่รหัสผ่านของคุณเป็นอาร์กิวเมนต์นี้เป็นตัวอย่างเช่นในสคริปต์สำรอง แต่ที่พร้อมท์คุณไม่ควรเพราะถ้ามีคนเข้าใช้คอมพิวเตอร์ของคุณพวกเขาอาจได้รหัสผ่านนี้ในประวัติคำสั่งของคุณ
  • "> db_backup.sql": ตอนสุดท้ายนี้กำลังบอก mysqldump เพื่อนำเอาผลลัพธ์ทั้งหมดไปเก็บไว้ในไฟล์ โดยปกติคำสั่งจะแสดงผลข้อมูลทั้งหมดไปที่คอนโซลโดยตรงซึ่งหมายความว่าคุณจะเห็นพร็อพเพอร์ตี้ SQL ที่บินโดย แต่สัญลักษณ์แทน *> * เป็นเครื่องหมายเพื่อกรองสิ่งเหล่านั้นลงในไฟล์ข้อความที่มีชื่อแทน และหากไฟล์นี้ไม่มีอยู่ไฟล์จะถูกสร้างขึ้นโดยอัตโนมัติ

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

ไฟล์แบ่งออกเป็นส่วน ในภาพด้านบนเราสามารถดูส่วนแรกตั้งค่าความคิดเห็นสำหรับ WordPress ส่วนที่สองจะสร้างเนื้อหา (เช่นบันทึกข้อคิดเห็น) ที่อยู่ในตารางเหล่านั้น เมื่อคุณไปที่ re-import MySQL dump ของคุณอีกครั้งคำสั่งจะทำงานผ่านไฟล์รันคำสั่งและสร้างฐานข้อมูลของคุณใหม่ในลักษณะเดิม ดังนั้นคุณจะทำอย่างไร ลองมาดู

การนำเข้าไฟล์การถ่ายโอนข้อมูล MySQL

ก่อนที่คุณจะสามารถทำเช่นนี้ได้คุณจะต้องมีฐานข้อมูลที่สร้างไว้แล้วและมีชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง คุณควรมีสิทธิ์ทั้งหมดสำหรับฐานข้อมูล (พูดอย่างเคร่งครัดคุณไม่จำเป็นต้อง GRANT อนุญาต แต่ง่ายกว่าเพียงแค่ให้พวกเขาทั้งหมด) คุณสามารถดูรายละเอียดเกี่ยวกับสิทธิ์ฐานข้อมูลในบทความนี้

หากต้องการนำเข้าข้อมูลของคุณอีกครั้งให้ทำตามขั้นตอนต่อไปนี้:

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

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

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

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