วิธีการคืนค่าฐานข้อมูล mysql จากไฟล์ทางกายภาพ?


12

ฉันเพิ่งติดตั้งระบบใหม่ฉันไม่ได้สำรองข้อมูลการถ่ายโอนข้อมูล แต่ยังมีโฟลเดอร์ทางกายภาพของการติดตั้ง mysql ก่อนหน้านี้

เป็นไปได้ที่จะใช้เพื่อคืนค่าและอัปเดตการกำหนดค่าปัจจุบันของฉันหรือไม่

คำตอบ:


11

เป็นไปได้ แต่ไม่แนะนำ ถ้าฉันจะลองนี่เป็นวิธีที่ฉันทำ

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

  2. ย้ายการติดตั้งเก่าออกไปด้วย mv /var/lib/mysql /var/lib/mysql.orig

  3. rsync หรือคัดลอกไฟล์ใหม่เข้าที่ sudo rsync -av /old/mysql/ /var/lib/mysql/ฉันแนะนำให้เก็บไฟล์ต้นฉบับไว้ในสถานะปัจจุบันในกรณีที่มันใช้งานไม่ได้

  4. sudo chown -R mysql: /var/lib/mysqlจากนั้นเริ่ม mysql ตรวจสอบบันทึกตรวจสอบให้แน่ใจว่าสิ่งต่าง ๆ ดูดีจากนั้นลงชื่อเข้าใช้ Mysql กระตุ้นให้แน่ใจว่าดูเหมือนว่าข้อมูลของคุณอยู่ที่นั่น

สมมติว่าทุกอย่างเป็นไปอย่างราบรื่นคุณควรตั้งค่า ตอนนี้กลับไปทำ Mysql ให้ถูกต้องเพื่อที่คุณจะได้ไม่ต้องทำเรื่องไร้สาระครั้งต่อไปอีก


1
ฉันจะระมัดระวังที่จะทำตามขั้นตอนที่ 2 ข้างต้นก่อนขั้นตอนที่ 1 คุณต้องการตรวจสอบให้แน่ใจว่าการติดตั้งและการเริ่มต้นของ mysqld ไม่ได้เขียนทับฐานข้อมูลระบบเก่าของคุณ
malcolmpdx

นั่นเป็นจุดที่ดี ฉันคิดว่า / var / lib / mysql ไม่ได้มาจากการติดตั้งดั้งเดิม ไม่ว่าในกรณีใดก็ตามให้แน่ใจว่าไฟล์ต้นฉบับของคุณไม่อยู่ที่ / var / lib / mysql ก่อนที่จะเริ่มต้นนี้ คุณต้องการเริ่มต้นด้วยอินสแตนซ์ Mysql ใหม่ก่อนที่จะเริ่มพยายามโหลดข้อมูลต้นฉบับของคุณ
kashani

ขอบคุณฉันปรับเปลี่ยนขั้นตอนเล็กน้อยเพื่อปรับให้เข้ากับสภาพแวดล้อม Zend Server CE และ MacOS ของฉันและใช้งานได้!
John

@Kashani ฉันทำตามคำแนะนำเหล่านี้ (centos) แต่บนเซิร์ฟเวอร์ใหม่ฉันได้รับตารางเพื่อแสดง แต่ข้อมูลและตารางไม่ได้ .. ความคิดใด ๆ ฉันเห็นตารางทั้งหมดในโฟลเดอร์ที่พวกเขาไม่แสดง (ดูเหมือนว่าจะเป็นชุดอักขระที่เหมาะสม)
K2xL

2
@ K2xL ฉันไม่แน่ใจว่าสิ่งที่คุณเห็น หากคุณสร้างคำถามใหม่พร้อมรายละเอียดเกี่ยวกับสิ่งที่คุณเห็นและวิธีที่คุณทำสำเร็จฉันยินดีที่จะดู โปรดทราบว่าวิธีการด้านบนใช้ได้กับการติดตั้ง Mysql ทั้งหมดเท่านั้นไม่ใช่ฐานข้อมูลส่วนบุคคลเนื่องจากตาราง Innodb มีข้อมูลที่เก็บไว้ในไฟล์ ibdata หลักโดยไม่คำนึงว่าคุณกำลังใช้ innodb_file_per_table หรือไม่
kashani
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.