สมมติว่าคุณไม่สามารถเพิ่มขนาดหน่วยความจำเพิ่มเติมจากนั้นมีสองตัวเลือก
หากคุณไม่คุ้นเคยกับบรรทัดคำสั่งและคุณต้องการใช้การนำเข้าสไตล์ GUI จริง ๆ คุณสามารถใช้ BigDump ( http://www.ozerov.de/bigdump/ ) ฉันใช้ครั้งเดียว แต่มันก็ไม่นาน จากสิ่งที่ฉันจำได้ว่าคุณจะดาวน์โหลดไฟล์ชื่อ bigdump.php (มีคำแนะนำ) และวางไว้บนเว็บเซิร์ฟเวอร์ของคุณในไดเรกทอรีด้วยไฟล์ดัมพ์ MySQL DB ที่มีขนาดใหญ่เกินกว่าที่จะนำเข้าผ่าน PHPMYADMIN จากนั้นไปโดยใช้เบราว์เซอร์ของคุณ - สิ่งที่ต้องการhttp://your-website.com/bigdump.php
หากคุณคุ้นเคยกับบรรทัดคำสั่งและใช้ระบบที่ใช้ Linux คุณสามารถใช้รหัสดังนี้:
mysql -u USERNAME -p DATABASENAME <FILENAME.sql
ฐานข้อมูลและผู้ใช้ (ที่มีสิทธิ์ในฐานข้อมูล) จะต้องมีอยู่ก่อนที่จะเรียกใช้คำสั่งนี้ หมายเหตุฉันคัดลอกคำสั่งด้านบนจากแหล่งอื่น ฉันมักจะทิ้งและคืนค่าเช่นนี้: DUMP: mysqldump -u DB_USER -h DB_HOST -pDB_PASSWORD DB_NAME | gzip -9 > DB_NAME.sql.gz
RESTORE:gunzip < PATH_TO_DUMP/DB_NAME.sql.gz | mysql -u DB_USER -pDB_PASSWORD DB_NAME
- สุดท้ายและเจ็บปวดที่สุดคุณสามารถเลือกที่จะถ่ายโอนข้อมูลแต่ละตารางหรือกลุ่มของตารางลงในการถ่ายโอนข้อมูลขนาดเล็กพอ จากนั้นเรียกคืนแต่ละครั้งที่ทิ้งข้อมูลเหล่านี้ผ่าน PHPMYADMIN
คำแนะนำ FTP & การคืนค่า:
ดาวน์โหลด FileZilla ที่นี่: http://filezilla-project.org/download.php?type=client
โดยทั่วไปคุณสามารถ FTP ไปยังเซิร์ฟเวอร์ของคุณ (โดยเฉพาะโฮสต์ที่ใช้ร่วมกัน) โดยใช้การเข้าสู่ระบบและรหัสผ่านเดียวกับที่คุณทำกับ SSH (คุณเข้าสู่บรรทัดคำสั่ง) เพียงให้แน่ใจว่าตั้งค่าการเชื่อมต่อกับเซิร์ฟเวอร์ของคุณอย่างถูกต้องใน FileZilla
เมื่อเชื่อมต่อเส้นทางเริ่มต้นของคุณน่าจะเป็นโฟลเดอร์ $ HOME ของคุณ (บนเครื่อง nix) หากคุณไม่ได้วางแผนที่จะทำการ FTP มาก ๆ เพียงแค่ทิ้งสิ่งที่คุณต้องการในนั้น คุณสามารถย้ายได้จากบรรทัดคำสั่ง
หากคุณมีการถ่ายโอนข้อมูล MySQL ในโฟลเดอร์ $ HOME จากนั้นคำสั่ง RESTORE สำหรับฐานข้อมูลชื่อ mydb และไฟล์ db dump ชื่อ mydb.sql.gz (ในโฟลเดอร์ $ HOME) จะเป็น:
gunzip < $HOME/mydb.sql.gz | mysql -u DB_USER -pDB_PASSWORD mydb
แน่นอนว่าคุณต้องการเปลี่ยนค่า DB_USER และ DB_PASSWORD เป็นผู้ใช้และรหัสผ่านใดที่คุณตั้งค่าไว้สำหรับ DB
โปรดจำไว้ว่า:
- DB ต้องมีอยู่แล้ว (แต่ว่างเปล่า) ก่อนที่คำสั่ง RESTORE จะถูกดำเนินการ
- ต้องตั้งค่า DB_USER และ DB_PASSWORD สำหรับ DB ก่อนคำสั่ง RESTORE (คุณสามารถทำได้จากแท็บ PHPMYADMIN - สิทธิพิเศษ)
- เมื่อคุณตั้งค่า DB_USER จาก PHPMYADMIN จะเป็นการอนุญาตให้ DB_USER เข้าถึงฐานข้อมูลจาก localhost เท่านั้น (เซิร์ฟเวอร์ที่ฐานข้อมูลโฮสต์อยู่) ฉันสมมติว่านี่เป็นเรื่องปกติสำหรับสถานการณ์ของคุณ เมื่อคุณเข้าสู่ DUMPs และ RESTORE ขั้นสูงคุณอาจต้องการทำจากเครื่องอื่นทั้งหมดซึ่งไม่ยาก แต่ต้องการข้อมูลเพิ่มเติมอีกสองสามชิ้นและ DB_USER พร้อมสิทธิ์ที่เหมาะสม
FTP ฐานข้อมูลและกู้คืน ... ทีละขั้นตอน
- ค้นหาไฟล์ดัมพ์ MySQL ซิปบนเดสก์ท็อปของคุณ (ตัวอย่าง: C: \ Web \ DB \ Dumps \ mydb.sql.zip)
- ดาวน์โหลดและติดตั้ง FileZilla
- ใน FileZilla ไปที่ File-> Site Manager และคลิกที่ปุ่ม New Site (Quadrant ซ้ายล่างของ GUI) ตั้งค่าโฮสต์เป็นโดเมน (ตัวอย่าง: dest.com) ที่อยู่ในเซิร์ฟเวอร์ DESTINATION ของคุณ ตั้งค่าโปรโตคอลเป็น FTP หรือ SFTP (ขึ้นอยู่กับโฮสติ้งของคุณถามพวกเขา) ตั้งค่าผู้ใช้และรหัสผ่าน (ตัวอย่าง: User = Grant, Password = Grant's password) - หากโปรโตคอล FTP เป็น SFTP ดังนั้นชุดข้อมูลรับรองการเข้าสู่ระบบ SSH ที่ถูกต้องควรจะทำงานได้
- (ใน FileZilla) คลิกเชื่อมต่อ (ปุ่มซ้ายล่างสุด)
- (ใน FileZilla) เมื่อเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกล (ควรเป็นเซิร์ฟเวอร์ DESTINATION ของคุณ) ใช้ด้านซ้ายของ FileZilla เพื่อนำทางไปยังไดเรกทอรีที่มีไฟล์ดัมพ์ที่คุณอยู่ในขั้นตอนที่ 1 (เส้นทางสำหรับเครื่องท้องถิ่นอยู่ทางด้านซ้ายสุดประมาณครึ่งทางและมีข้อความว่า Local site: ในตัวอย่างของเรากล่องข้อความถัดจาก Local site: จะอ่าน C: \ Web \ DB \ Dumps)
- (ใน FileZilla) ค้นหาไซต์ระยะไกล: ป้ายกำกับทางด้านขวาของ Local Site:
- (ใน FileZilla) ไม่มีเหตุผลทางเทคนิคที่คุณไม่สามารถใส่ DB DUMP ในโฟลเดอร์ที่ FileZilla เปิดขึ้นได้ เป็นไปได้ว่าไดเรกทอรีของคุณจะเป็นค่าเริ่มต้น หากคุณไม่มีเหตุผลใด ๆ ที่จะนำ DB Dump ไปไว้ในไดเรกทอรีเฉพาะเช่นเพื่อวัตถุประสงค์ในองค์กรของคุณ - จากนั้นทิ้งเส้นทางไว้บนไซต์ระยะไกลเพียงอย่างเดียว จดเส้นทางนั้นไว้ (ตัวอย่าง Linux: / usr / grant)
- (ใน FileZilla) ค้นหาไฟล์ในเครื่องท้องถิ่นของคุณที่ด้านซ้ายของ FileZilla ใต้ทรีที่แสดงใต้ Local site: เลเบลที่คุณพบในขั้นตอนที่ 5 ดับเบิลคลิกที่ไฟล์นั้น FileZilla จะ FTP ไปยังไซต์ระยะไกลของคุณ
- ภายใน PHPMYADMIN บนเซิร์ฟเวอร์ DESTINATION ของคุณสร้างฐานข้อมูลใหม่ (พิมพ์ mydb ลงในกล่องข้อความสร้างฐานข้อมูลใหม่และคลิกปุ่มสร้าง)
- (ใน PHPMYADMIN) เลือก mydb จากเมนูด้านซ้าย
- (ใน PHPMYADMIN) คลิกที่แท็บสิทธิ์ (ด้านบนขวา) เมื่ออยู่ในหน้านั้นให้คลิกที่เพิ่มผู้ใช้ใหม่
- (ใน PHPMYADMIN-> สิทธิ์ -> เพิ่มผู้ใช้ใหม่) ระบุชื่อผู้ใช้ (ตัวอย่าง: mydb_grant) และรหัสผ่าน (ตัวอย่าง: mydb_password) ในรายการดรอปดาวน์ Host ให้เลือก Local ตรวจสอบให้แน่ใจว่าได้เลือกปุ่มตัวเลือกถัดจาก "ให้สิทธิ์ทั้งหมดบนฐานข้อมูล" จากนั้นคลิกไป (ด้านล่างขวาของหน้าจอ)
- SSH ไปยังเซิร์ฟเวอร์ DESTINATION ของคุณ
- (ใน terminal SSH ของคุณ) นำทางไปยังไดเรกทอรีของคุณเขียนลงไปในขั้นตอนที่ 7. การใช้คำสั่งเช่น - หรือ
cd $HOME
cd /usr/grant
(บนเครื่อง Linux $ HOME เป็นตัวแปรสภาพแวดล้อมที่จะเท่ากับ / usr / grant)
- (ในเทอร์มินัล SSH ของคุณ) ดำเนินการคำสั่งต่อไปนี้:
gunzip < /usr/grant/mydb.sql.gz | mysql -u mydb_grant -pmydb_password mydb
(ไม่มีช่องว่างระหว่าง -p และรหัสผ่านเนื่องจากเป็นวิธีที่จำเป็นต้องมีนั่นคือไม่ใช่ตัวพิมพ์)
เมื่อคำสั่งสุดท้ายนั้นทำให้ DB ของคุณเสร็จสมบูรณ์แล้ว ฉันไม่แนะนำให้ใช้ผู้ใช้ DB และรหัสผ่านที่ฉันให้ไว้เพียงแทนที่พวกเขาด้วยตัวเลือกที่ปลอดภัยกว่าของคุณเอง
DUMP และ RESTORE บนเซิร์ฟเวอร์ต่าง ๆ โดยไม่มี FTP
หากคุณต้องการข้ามสิ่ง FTP และไม่รังเกียจที่จะทำซ้ำ DUMP คุณสามารถทำได้ด้วยวิธีนี้:
- ลงชื่อเข้าใช้เซิร์ฟเวอร์ DESTINATION (ที่คุณต้องการให้ฐานข้อมูลอยู่ - เราจะเรียกมันว่า destination.com)
- สร้างฐานข้อมูลผู้ใช้และสิทธิ์ที่เหมาะสมตามที่กล่าวไว้ข้างต้นบนเซิร์ฟเวอร์ DESTINATION
- ตรวจสอบให้แน่ใจว่าสิทธิพิเศษบนเซิร์ฟเวอร์ SOURCE อนุญาตให้ SOURCE_DB_USER เข้าถึงฐานข้อมูลจากระยะไกลไม่ว่าจะอนุญาตการเข้าถึงจาก dest.com หรือจาก% (% - ทุกคนและทุกที่หากมีชื่อผู้ใช้และรหัสผ่านที่ถูกต้อง)
- ในการเรียกใช้เซิร์ฟเวอร์ DESTINATION:
mysqldump -u SOURCE_DB_USER -h source.com -pSOURCE_DB_PASSWORD mydb| gzip -9 > $HOME/mydb.sql.gz
โดยที่ source.com คือเซิร์ฟเวอร์ SOURCE (ที่ฐานข้อมูลอยู่ในปัจจุบัน)
- จากนั้น (บนเซิร์ฟเวอร์ DESTINATION) จะทำงาน:
gunzip < $HOME/mydb.sql.gz | mysql -u DEST_DB_USER -pDEST_DB_PASSWORD mydb
นั่นคือทั้งหมดที่คุณต้องทำเพื่อย้ายฐานข้อมูลจากเซิร์ฟเวอร์หนึ่งไปยังเซิร์ฟเวอร์อื่น Caveats คือฉันได้ทำสิ่งนี้ด้วยตัวเองโดยเฉพาะ Ubuntu (ด้วย LAMP มาตรฐาน) และเซิร์ฟเวอร์ VPS ของ Dreamhost (ซึ่งฉันเชื่อว่ารัน CentOS แต่ฉันอาจผิด)