Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

จะคัดลอกตารางหรือฐานข้อมูลจากเซิร์ฟเวอร์ MySQL หนึ่งไปยังเซิร์ฟเวอร์ MySQL อื่นได้อย่างไร


หากเราต้องการคัดลอกตารางหรือฐานข้อมูลจากเซิร์ฟเวอร์ MySQL หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่ง ให้ใช้ mysqldump ด้วยชื่อฐานข้อมูลและชื่อตาราง

เรียกใช้คำสั่งต่อไปนี้ที่โฮสต์ต้นทาง การดำเนินการนี้จะดัมพ์ฐานข้อมูลทั้งหมดลงใน dump.txt ไฟล์.

$ mysqldump -u root -p database_name table_name > dump.txt
password *****

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

ตอนนี้ ไฟล์ ftp dump.txt บนโฮสต์อื่น และใช้คำสั่งต่อไปนี้ ก่อนรันคำสั่งนี้ ตรวจสอบให้แน่ใจว่าเราได้สร้าง database_name บนเซิร์ฟเวอร์ปลายทางแล้ว

$ mysql -u root -p database_name < dump.txt
password *****

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

$ mysqldump -u root -p database_name \
| mysql -h other-host.com database_name

ใน mysqldump ครึ่งหนึ่งของคำสั่งเชื่อมต่อกับโลคัลเซิร์ฟเวอร์และเขียนเอาต์พุตดัมพ์ไปยังไพพ์ ส่วนที่เหลืออีกครึ่งหนึ่งของคำสั่งเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ระยะไกลบน other-host.com มันอ่านไปป์สำหรับอินพุตและส่งแต่ละคำสั่งไปยังเซิร์ฟเวอร์ other-host.com