นำเข้าฐานข้อมูล mysql วิธีนำเข้าฐานข้อมูล MySQL ขนาดใหญ่โดยข้ามข้อ จำกัด ของ phpMyAdmin วิธีคืนค่าฐานข้อมูล MySQL จากดัมพ์ผ่านคอนโซล

25.12.2023 ภาพถ่ายและวิดีโอ

สวัสดีเพื่อนๆ! 🙂

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

ในบทความนี้ ฉันจะพูดถึงวิธีดัมพ์ฐานข้อมูล MySQL รวมถึงการอัพโหลดข้อมูลจาก MySQL ไปยังไฟล์ Excel และรูปแบบ CSV

เราจะดูตัวเลือกต่างๆ สำหรับการดึงข้อมูลจาก: การสร้างดัมพ์ของฐานข้อมูลหนึ่งหรือหลายฐานข้อมูล การส่งออกข้อมูลจากแต่ละตาราง และผลลัพธ์ที่กำหนดเอง เลือกคำขอ

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

ในบทความนี้ ฉันจะไม่พูดถึงวิธีส่งออกข้อมูลโดยใช้ phpMyAdmin และเครื่องมือภาพอื่นๆ

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

และประการที่สอง ฉันเองได้ตรวจสอบกระบวนการส่งออกข้อมูลจากฐานข้อมูล MySQL ไปยังไฟล์ SQL สั้น ๆ ในบทความของฉันที่ฉันพูดถึง .

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

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

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

การสร้างดัมพ์ฐานข้อมูล MySQL ผ่านคอนโซล

ฉันต้องการชี้แจงเล็กน้อยในตอนเริ่มต้น

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

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

ส่งออกข้อมูล- นี่เป็นเพียงการแยกข้อมูลจากตารางในรูปแบบข้อความเพื่อใช้งานเพิ่มเติมกับโปรแกรมแก้ไขข้อความหรือกราฟิก

ดังนั้นคำสั่งสำหรับการดำเนินการเหล่านี้จะแตกต่างออกไปเล็กน้อย

ในการสร้างดัมพ์ฐานข้อมูล MySQL มียูทิลิตี้ในตัวที่เรียกว่า mysqldumpซึ่งต้องใช้นอกบรรทัดคำสั่ง MySQL ในคอนโซลเซิร์ฟเวอร์หรือเชลล์อื่น ๆ

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

Mysqldump -u ชื่อผู้ใช้ -p Database_name > path_and_dump_file_name

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

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

Mysqldump -u ชื่อผู้ใช้ -p --ฐานข้อมูลทั้งหมด > path_and_dump_file_name

หากต้องการดัมพ์ฐานข้อมูลเฉพาะบางฐานข้อมูล คุณจะต้องเรียก mysqldump ด้วยพารามิเตอร์ต่อไปนี้:

Mysqldump -u ชื่อผู้ใช้ -p --ฐานข้อมูลdatabase_name1,database_name2, ... > path_and_dumpfile_name

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

ตัวเลือกนี้เหมาะสำหรับการกู้คืนและคัดลอกฐานข้อมูลทั้งหมดเท่านั้น

เราจะพูดคุยเพิ่มเติมเกี่ยวกับวิธีสำรองข้อมูลตาราง MySQL บางตารางและรับข้อมูลในรูปแบบที่อ่านได้

การดัมพ์ตาราง MySQL และการส่งออกข้อมูล

ในการสร้างดัมพ์ของตารางฐานข้อมูล MySQL บางตาราง เราจำเป็นต้องมียูทิลิตีเดียวกัน mysqldumpเรียกด้วยพารามิเตอร์ต่อไปนี้:

Mysqldump -u ชื่อผู้ใช้ -p ฐานข้อมูลชื่อ table_name1, table_name2, ... > path_and_dumpfile_name

เมื่อเรียก mysqldump คุณสามารถระบุตารางที่ต้องการเป็นค่าพารามิเตอร์ได้ --ตารางเมื่อใช้พารามิเตอร์ --ฐานข้อมูลจะถูกละเว้น:

Mysqldump -u ชื่อผู้ใช้ -p --ฐานข้อมูลdatabase_name1,database_name2 --tables table_name1, table_name2, ... > path_and_dumpfile_name

ตัวอย่างข้างต้นจะแสดงข้อผิดพลาดต่อไปนี้:

Mysqldump: มีข้อผิดพลาด: 1,049: ฐานข้อมูลที่ไม่รู้จัก "database_name1" เมื่อเลือกฐานข้อมูล

อย่างที่คุณเห็น จะใช้เฉพาะฐานข้อมูลล่าสุดจากรายการเท่านั้น โดยหลักการแล้วพฤติกรรมนี้ค่อนข้างสมเหตุสมผลเพราะว่า ตารางที่ระบุอาจไม่ปรากฏในฐานข้อมูลทั้งหมด

โอเค เราได้รับดัมพ์ของตารางฐานข้อมูล MySQL แล้ว สามารถใช้เพื่อกู้คืนหรือคัดลอกพร้อมกับโครงสร้างได้

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

ตัวเลือกในการเรียกยูทิลิตี้จะช่วยให้เราบรรลุแผนของเรา mysqlจากคอนโซลด้วยพารามิเตอร์บางอย่าง:

Mysql -u ชื่อผู้ใช้ -p Database_name -e "SELECT * FROM table_name"

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

เพื่อไม่ให้ส่งข้อมูลไปยังคอนโซล แต่หากต้องการเขียนลงในไฟล์คุณต้องเสริมคำสั่งดังนี้:

Mysql -u ชื่อผู้ใช้ -p -e "SELECT * FROM tablename"> path_and_filename

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

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

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

การสร้างการสำรองข้อมูลและส่งออกข้อมูลจากฐานข้อมูล MySQL โดยใช้แบบสอบถาม

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

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

สำหรับการสำรองข้อมูล เราจะต้องมียูทิลิตี้เดียวกัน mysqldumpซึ่งจะต้องเรียกดังนี้:

Mysqldump -u user_name -p ฐานข้อมูลชื่อ table_name -- โดยที่ "การค้นหา" > path_and_dump_file_name

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

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

Mysql -u user_name -p -e "เลือก * จาก table_name ค้นหา WHERE"> path_and_file_name

ตามที่คุณเข้าใจนอกเหนือจากคำชี้แจงต่าง ๆ ที่ระบุในคำขอโดยใช้คำสั่ง ที่ไหนคุณสามารถใช้โครงสร้าง SQL อื่นๆ ได้: เข้าร่วม, ยูเนี่ยนฯลฯ

คุณสามารถรวบรวมสถิติที่คุณต้องการ :)

การดำเนินการเดียวกันนี้สามารถทำได้เมื่อทำงานบนบรรทัดคำสั่ง MySQL โดยใช้คำสั่งต่อไปนี้:

SELECT * FROM Database_table โดยที่ค้นหาลงใน OUTFILE "path_and_file_name";

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

หากกรณีข้างต้นเป็นของคุณ คุณจะพบรายการพารามิเตอร์และตัวเลือกทั้งหมดสำหรับการเรียกใช้คำสั่งนี้ได้ที่นี่ - https://dev.mysql.com/doc/refman/5.7/en/select-into.html

เพื่อสรุปการเดินทางสั้น ๆ ของฉันใน mysqldump ฉันต้องการให้ตัวแปรในการเรียกคำสั่งพร้อมรายการพารามิเตอร์เพื่อสร้างดัมพ์ที่ปรับให้เหมาะสมของฐานข้อมูลและตาราง MySQL การกู้คืนฐานข้อมูลและตารางแต่ละตารางซึ่งจะใช้เวลาน้อยกว่าด้วย การโทรปกติ:

mysqldump -u user_name -h host_or_IP_MySQL_server -p --no-autocommit --opt ชื่อฐานข้อมูล > path_and_dump_file_name;

เพื่อประโยชน์ในการทดลอง ฉันใช้ตัวเลือกนี้เพื่อดัมพ์ฐานข้อมูล MySQL ขนาด 143 MB การคืนค่าครั้งต่อไปใช้เวลา 59 วินาทีเทียบกับ 1 นาที 3 วินาทีเมื่อฐานข้อมูลถูกกู้คืนจากดัมพ์ที่ทำโดยการเรียก mysqldump โดยไม่มีพารามิเตอร์พิเศษ

ฉันยอมรับว่านี่เป็นเรื่องเล็กน้อย แต่นี่เป็นเพียงในกรณีของข้อมูลตามจำนวนที่กำหนดเท่านั้น หากคุณใช้เทคนิคนี้เมื่อสร้างดัมพ์ที่มีขนาดใหญ่กว่า 1GB ความแตกต่างจะมีนัยสำคัญมากขึ้น

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

ส่งออกข้อมูลจาก MySQL ไปยัง Excel และไฟล์ csv

ไม่ใช่เพื่ออะไรที่ฉันรวมข้อมูลเกี่ยวกับการส่งออกข้อมูลจาก MySQL เป็นสองรูปแบบนี้ในบล็อกเดียวเพราะ... คล้ายกันมากใช้ในลักษณะเดียวกันโดยประมาณ (เพื่อจัดโครงสร้างข้อมูลในรูปแบบของตาราง) และจะเรียกคำสั่งเดียวกันสำหรับการส่งออก

ดังที่คุณทราบ ข้อแตกต่างที่สำคัญเพียงอย่างเดียวระหว่างรูปแบบเหล่านี้คือส่วนขยาย xls และ xlsx มีไฟล์ที่สร้างใน Microsoft Office Excel ซึ่งใช้งานได้กับ Windows เท่านั้น ในขณะที่ไฟล์ CSV นั้นมีความเป็นสากลมากกว่าและการดำเนินการกับไฟล์เหล่านี้สามารถทำได้ในโปรแกรมแก้ไขหลายตัว

นี่ไม่ได้หมายความว่า xls จะไม่เปิดที่ใดก็ได้ยกเว้น Microsoft Office Excel OpenOffice เดียวกันยืนยันสิ่งที่ตรงกันข้าม

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

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

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

ไม่ แน่นอนว่าเป็นไปได้ที่จะทำเช่นนี้ แต่ไม่น่าจะทำได้ด้วยคำสั่งเดียว และโดยทั่วไปไม่น่าจะมีใครทำเช่นนี้ในคอนโซล ฉันคิดว่าเพื่อจุดประสงค์เหล่านี้คุณจะต้องมีซอฟต์แวร์พิเศษหรืออย่างน้อยก็มีสคริปต์

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

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

มาเริ่มกันตามลำดับ

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

บน ลินุกซ์ระบบ:

Mysql -u ชื่อผู้ใช้ -d Database_name -p -e "SELECT * FROM Database_table;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > path_and_file_name. CSV

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

บน หน้าต่าง:

น่าเสียดายที่การส่งออกข้อมูลจากตาราง MySQL ไปยัง csv โดยใช้คำสั่งข้างต้นจะไม่ทำงานในกรณีนี้เนื่องจาก Windows ต่างจาก Linux ตรงที่ไม่มีคำสั่งคอนโซลในตัวสำหรับการทำงานกับเธรด เช่น sed ใน Linux

แน่นอน คุณสามารถติดตั้งได้ แต่มันยุ่งยากเกินไป หรือคุณสามารถใช้ ซิกวิน— โปรแกรมจำลองคอนโซล Linux สำหรับระบบ Windows

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

แต่การแยกข้อมูลเป็นไฟล์ xls นั้นง่ายพอ ๆ กับ 5 kopecks :) มันง่ายมากที่จะเปิดตัวด้วยวิธีต่อไปนี้ ซึ่งฉันได้ลองเป็นการส่วนตัว:

Mysql -u ชื่อผู้ใช้ -d Database_name -p -e "SELECT * FROM Database_table;" > path_and_file_name.xls

ไฟล์นี้เปิดใน Microsoft Office Excel โดยไม่มีปัญหาใดๆ เลย สิ่งเดียวคือเมื่อเปิดขึ้นมาจะมีข้อความแสดงบนหน้าจอเตือนว่ารูปแบบจริงของไฟล์ที่กำลังเปิดแตกต่างจากนามสกุลที่ระบุ

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

ฉันไม่รู้ บางทีหากคุณดำเนินการใดๆ ใน Microsoft Office Excel ปัญหาจะเกิดขึ้นในอนาคต ฉันไม่ได้เจาะลึกขนาดนั้น เมื่อฉันดูข้อมูลตามปกติ อย่างน้อยฉันก็ไม่เห็นอะไรผิดปกติ

หากคุณพบปัญหาใดๆ ในขณะที่ใช้ไฟล์ xls ที่ส่งออกจาก MySQL ทั้งในโปรแกรมนี้หรือในไฟล์อื่นๆ โปรดแจ้งให้เราทราบในความคิดเห็น

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

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

Microsoft Office Excel ตัวเดียวกันแสดงข้อมูลทั้งหมดที่สอดคล้องกับหนึ่งระเบียนในตารางโดยเขียนลงในเซลล์เดียวโดยไม่มีตัวคั่น ฉันคิดว่าบรรณาธิการตารางคนอื่นๆ จะทำเช่นเดียวกัน

ดังนั้นเมื่อส่งออกฐานข้อมูล MySQL ไปยังไฟล์ CSV คุณต้องทำสิ่งนี้โดยแยกข้อมูลด้วยอักขระพิเศษที่ผู้แก้ไขเข้าใจ

จากนั้นฉันก็ค่อยๆ เข้าใกล้วิธีที่สองในการส่งออกข้อมูล MySQL เป็น csv และ xls ซึ่งก็คือการใช้บรรทัดคำสั่ง MySQL

ดังนั้น ในการส่งออกข้อมูล MySQL ไปยังไฟล์ csv ด้วยวิธีนี้ เราจำเป็นต้องมีคำสั่งต่อไปนี้:

SELECT * FROM Database_table ลงใน OUTFILE "path_and_file_name.csv" ฟิลด์ที่สิ้นสุดโดย , , , ล้อมรอบโดย "" , บรรทัดที่สิ้นสุดโดย "\ n" ;

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

คำสั่งนี้ยังเหมาะสำหรับการส่งออกข้อมูล MySQL ไปยังไฟล์ xls เพื่อการแสดงผลที่ถูกต้องใน Microsoft Office Excel เฉพาะในกรณีนี้เราไม่ต้องการตัวคั่นเพราะว่า พวกเขาจะรบกวนการแบ่งข้อมูลออกเป็นเซลล์:

SELECT * จาก Database_table ลงใน OUTFILE "path_and_file_name.xls";

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

ข้อผิดพลาด 1290 (HY000): เซิร์ฟเวอร์ MySQL กำลังทำงานด้วยตัวเลือก --secure-file-priv ดังนั้นจึงไม่สามารถดำเนินการคำสั่งนี้ได้

เกิดจากการที่เซิร์ฟเวอร์ MySQL ของคุณเริ่มต้นด้วยตัวเลือกนี้ --secure-file-priv. โดยส่วนตัวแล้วฉันพบปัญหานี้เนื่องจากการทำงานในคอนโซลฉันใช้ชุดการแจกจ่าย MySQL ที่รวมอยู่ในชุด WAMP OpenServer ซึ่งในทางกลับกันจะเปิดตัวเซิร์ฟเวอร์ MySQL ในลักษณะนี้

มีสองวิธีในการแก้ปัญหา:

  • เปลี่ยนพารามิเตอร์การเริ่มต้นเซิร์ฟเวอร์ MySQL
  • เปลี่ยนเส้นทางไปยังไฟล์ส่งออก MySQL สุดท้าย

วิธีแรกดูซับซ้อนเกินไปสำหรับฉัน เพราะ... ฉันจะต้องเจาะลึกการกำหนดค่า OpenServer ซึ่งฉันไม่ได้เขียนขึ้นเองกับสถานการณ์ที่ตามมาทั้งหมด 🙂 ดังนั้นฉันจึงตัดสินใจใช้เส้นทางที่สอง หากคุณพบปัญหาที่คล้ายกัน โปรดทำซ้ำตามฉัน

ขั้นแรกคุณต้องไปที่บรรทัดคำสั่ง MySQL และเรียกใช้คำสั่งใดคำสั่งหนึ่งต่อไปนี้:

แสดงตัวแปรเช่น "secure_file_priv"; เลือก @@GLOBAL.secure_file_priv;

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

เหล่านั้น. เมื่อใช้คำสั่ง โหลดข้อมูลและ เลือก... ลงในไฟล์ไฟล์ที่ส่งออกและนำเข้าสามารถอยู่ในไดเร็กทอรีนี้เท่านั้น

ในกรณีของฉัน โดยทั่วไปตัวแปรนี้จะถูกตั้งค่าเป็น โมฆะ, เพราะ อย่างที่ฉันบอกไปแล้วว่าใช้ยูทิลิตี้ MySQL จากการแจกจ่ายที่รวมอยู่ใน OpenServer เพื่อทำงานในคอนโซล ค่านี้บ่งชี้ว่าการดำเนินการส่งออกและนำเข้าข้อมูล MySQL โดยใช้คำสั่งที่ระบุถูกปิดโดยสมบูรณ์

ตามที่ปรากฎในภายหลัง นี่เป็นสถานการณ์ทั่วไปเมื่อใช้เซิร์ฟเวอร์ WAMP และ MAMP ชนิดบรรจุกล่อง

น่าเสียดายที่ในกรณีของฉัน ไม่สามารถใช้วิธีการปกติในการเปลี่ยนค่าของตัวแปรโกลบอล MySQL ได้:

SET ชื่อตัวแปร = ค่า;

ด้วยเหตุนี้ ฉันจึงเห็นเฉพาะข้อผิดพลาดต่อไปนี้ในคอนโซล:

ข้อผิดพลาด 1238 (HY000) ที่บรรทัด 1: ตัวแปร "secure_file_priv" เป็นตัวแปรแบบอ่านอย่างเดียว.

เป็นผลให้เกิดการเปลี่ยนแปลงค่าของตัวแปร Secure_file_privและเปิดการดำเนินการส่งออกและนำเข้า ฉันต้องเข้าไปในไฟล์การกำหนดค่า MySQL mysql.ini ซึ่งอยู่ในไดเร็กทอรีรากของการกระจาย MySQL หรือสามารถเข้าถึงได้ด้วยวิธีอื่นหาก MySQL รวมอยู่กับ WAMP/LAMP/ ของคุณ การสร้างเซิร์ฟเวอร์ MAMP

อย่างไรก็ตาม หากคุณต้องการเปลี่ยนเส้นทางไปยังไดเร็กทอรีสปูลของการแลกเปลี่ยนไฟล์ คุณจะต้องทำเช่นเดียวกัน

ในกรณีของฉัน ตัวแปรนี้มีอยู่แล้วในการกำหนดค่า เฉพาะในรูปแบบความคิดเห็นเท่านั้น:

การรักษาความปลอดภัยไฟล์ priv = "%dprogdir%\\userdata\\temp"

หากคุณไม่มี ให้เขียนตั้งแต่ต้นในส่วนนี้ (อย่างน้อยสำหรับฉันมันตั้งอยู่ที่นั่น)

ฉันไม่แสดงความคิดเห็นและตัดสินใจใช้มันในรูปแบบที่เขียนไว้ เหล่านั้น. เมื่อส่งออกข้อมูลจาก MySQL และนำเข้ากลับ ไฟล์ของฉันจะถูกจัดเก็บไว้ในไดเร็กทอรี c:\openserver\ข้อมูลผู้ใช้\temp\.

หลังจากเปลี่ยนการกำหนดค่า (อย่างไรก็ตาม) อย่าลืมรีสตาร์ทเซิร์ฟเวอร์ของคุณหรือบริการแยกต่างหากที่คุณแก้ไขการตั้งค่าหากเป็นไปได้ เพื่อให้การเปลี่ยนแปลงมีผล!

เพื่อให้แน่ใจว่าหลังจากรีสตาร์ทเซิร์ฟเวอร์ MySQL แล้ว ให้แสดงตัวแปรอีกครั้ง Secure_file_privและคัดลอกค่าไปยังคลิปบอร์ด

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

SELECT * จาก Database_table ลงใน OUTFILE "secure_file_priv_value\file_name.csv";

หลังจากนี้ การส่งออกข้อมูลจาก MySQL ก็ใช้งานได้ในกรณีของฉัน

จุดสำคัญ! หากคุณทำงานกับ MySQL บน Windows อย่าลืมเปลี่ยน "\" เป็น "/" เมื่อระบุเส้นทางไปยังไฟล์มิฉะนั้นจะเกิดข้อผิดพลาด --secure-file-privจะยังคงปรากฏอยู่ต่อไป

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

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

ขอให้ทุกคนโชคดี แล้วพบกันใหม่! 🙂

ป.ล.: หากคุณต้องการเว็บไซต์หรือต้องการเปลี่ยนแปลงเว็บไซต์ที่มีอยู่ แต่ไม่มีเวลาหรือต้องการสิ่งนี้ ฉันสามารถให้บริการได้

ประสบการณ์มากกว่า 5 ปีการพัฒนาเว็บไซต์อย่างมืออาชีพ ทำงานกับ PHP

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

การนำเข้าฐานข้อมูลจะใช้เมื่อคุณต้องการ "อัปโหลดใหม่" ฐานข้อมูลไปยังโฮสติ้งปัจจุบันของคุณ หรือเมื่อย้ายไปยังโฮสติ้งอื่น ซึ่งมักทำในทางปฏิบัติโดยผู้ดูแลเว็บ

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

หากต้องการส่งออกฐานข้อมูล คุณต้องไปที่แผงผู้ดูแลระบบโฮสติ้ง จากนั้นไปที่ส่วนฐานข้อมูล - ฐานข้อมูล MySQL

เลือกฐานข้อมูลที่เราต้องการส่งออก (ไปที่ phpMyAdmin) ในตัวอย่างนี้ ฐานข้อมูลเรียกว่า "cl209038"

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

2) ในกรณีที่สอง เลือก “ปกติ” หน้าที่มีการตั้งค่าการส่งออกฐานข้อมูลจะปรากฏขึ้น เลือกตารางทั้งหมด เลือกระดับการเข้ารหัสและการบีบอัด ดังที่แสดงด้านล่าง ส่วนที่เหลือตามกฎแล้วไม่จำเป็นต้องเปลี่ยนแปลง คลิกปุ่ม "ตกลง" และฐานข้อมูลจะถูกส่งออกไปยังคอมพิวเตอร์ของเรา

นั่นคือทั้งหมดอย่างที่คุณเห็น ส่งออกฐานข้อมูล MySQL ไม่ใช่เรื่องยาก

หากต้องการนำเข้าฐานข้อมูล คุณต้องไปที่แผงผู้ดูแลระบบโฮสติ้งและไปที่ส่วนที่มีฐานข้อมูล MySQL มีสองตัวเลือกที่นี่ - คุณต้องสร้างฐานข้อมูลใหม่หรือส่งออกไปยังฐานข้อมูลที่มีอยู่

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

1) มีฐานข้อมูลอยู่แล้ว เราเลือกฐานข้อมูลที่จะนำเข้าสำเนาฐานข้อมูลของเราเข้าไป เมนูนำเข้าฐานข้อมูลจะปรากฏขึ้น

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

2) การสร้างฐานข้อมูลใหม่ ไปที่แผงผู้ดูแลระบบโฮสติ้งและเลือกส่วนที่มีฐานข้อมูล MySQL เราเข้าสู่การจัดการฐานข้อมูล MySQL

ระบุชื่อฐานข้อมูลและรหัสผ่านที่ต้องการ คลิกปุ่ม "สร้าง" ด้วยเหตุนี้ควรสร้างฐานข้อมูลใหม่ (ว่าง) - เราจะต้องนำเข้าสำเนาฐานข้อมูลของเราที่บันทึกไว้ก่อนหน้านี้ลงไป

นั่นคือทั้งหมดที่ฉันอยากจะบอกคุณเกี่ยวกับการส่งออกและการนำเข้าฐานข้อมูล MySQL หากคุณมีปัญหาใดๆ เกี่ยวกับคำถามเหล่านี้ โปรดเขียนความคิดเห็นในบทเรียนนี้

ฐานข้อมูล (หรือเรียกโดยย่อว่า DB) บนไซต์ส่วนใหญ่มีขนาด (น้ำหนัก) หลายสิบ MB (เมกะไบต์) ขนาดเริ่มต้นของฐานข้อมูลเมื่อเริ่มต้นโครงการต่างๆ ขึ้นอยู่กับโครงสร้างของไซต์ (CMS) แต่น้ำหนักจะเพิ่มขึ้นตามการปรากฏตัวของบันทึกใหม่แต่ละครั้ง

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

ฉันมีโอกาสทำงานกับหลายไซต์ที่มีขนาดฐานข้อมูลเกิน 500 MB (เมกะไบต์) และบางไซต์ถึง 2 GB (กิกะไบต์) เนื่องจากฐานข้อมูลขนาดนี้ถ่ายโอนได้ยากโดยใช้วิธีการมาตรฐาน (เนื่องจากข้อจำกัดด้านโฮสติ้งและเบราว์เซอร์) ฉันจะแบ่งปันวิธีการทำงานหลายวิธีที่จะช่วยคุณแก้ไขปัญหาดังกล่าว (การย้ายฐานข้อมูลขนาดใหญ่)

ส่งออก (ดาวน์โหลด) ฐานข้อมูล MySQL ขนาดใหญ่ผ่าน Sypex Dumper

ดังนั้น เรามาเริ่มต้นการพิจารณาแก้ไขปัญหาที่มีอยู่ด้วยตัวเลือกที่ง่ายกว่า กล่าวคือ ด้วยวิธีแก้ไขปัญหาสำเร็จรูป

"Sypex Dumper" เป็นผลิตภัณฑ์ซอฟต์แวร์ที่เขียนด้วย PHP ซึ่งช่วยให้คุณทำงานกับฐานข้อมูลได้โดยไม่ต้องใช้ phpMyAdmin ข้อดีของ Sypex Dumper ได้แก่:

  1. หลายภาษา (รองรับหลายภาษา)
  2. มีสคริปต์เวอร์ชันฟรี (สำหรับจุดประสงค์ของเราก็เพียงพอแล้ว)
  3. ความเร็วสูงในการทำภารกิจให้สำเร็จ
  4. การทำงานกับฐานข้อมูลขนาดใหญ่
  5. อินเทอร์เฟซที่สะดวกและใช้งานง่าย
  6. และ “ชิป” ที่น่าสนใจอื่นๆ อีกมากมาย

นี่คือสิ่งที่เราจะใช้ในการดาวน์โหลด (ถ่ายโอน) ฐานข้อมูลขนาดใหญ่

หากต้องการส่งออก (รับ ดาวน์โหลด) ฐานข้อมูลของไซต์เฉพาะของคุณเพื่อการใช้งานต่อไป คุณต้องดำเนินการดังต่อไปนี้

1. ฟรีจากเว็บไซต์ของเรา

2. sxdในแบบที่สะดวกสำหรับคุณ

3. จากนั้นไปที่ที่อยู่ (ที่ไหน your_site.ru ที่จะเข้ามา».

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


ฉันต้องการทราบซึ่งคุณสามารถส่งออกได้ไม่ใช่ฐานข้อมูลทั้งหมด แต่ส่งออกได้เพียงบางตารางเท่านั้นตามต้องการ

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


นอกจากนี้ ฐานข้อมูลที่ส่งออกทั้งหมดจะถูกจัดเก็บไว้ในเว็บไซต์ของคุณตลอดทาง /sxd/สำรอง/. หากการบันทึกฐานข้อมูลล้มเหลว ให้ตรวจสอบว่าโฟลเดอร์นั้น การสำรองข้อมูลสิทธิ์ในการเขียนคือ 777

การดำเนินการส่งออก (ดาวน์โหลด) ฐานข้อมูลจะเสร็จสิ้น

นำเข้า (ดาวน์โหลด) ฐานข้อมูล MySQL ขนาดใหญ่ผ่าน Sypex Dumper

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

1. ฟรีจากเว็บไซต์ของเรา

2. คลายไฟล์เก็บถาวรและอัปโหลดโฟลเดอร์ไปยังเว็บไซต์ sxdในแบบที่สะดวกสำหรับคุณ

3. ไปที่โฟลเดอร์ /sxd/สำรอง/โหลดฐานข้อมูลที่ได้รับก่อนหน้านี้ (ดาวน์โหลด)

4. ถัดไปไปที่ที่อยู่ http://your_site.ru/sxd/index.php(ที่ไหน your_site.ru– โดเมนของเว็บไซต์ของคุณ) หลังจากนั้นแบบฟอร์มป้อนข้อมูลจะเปิดต่อหน้าคุณ ในนั้นคุณระบุข้อมูลของผู้ใช้ที่มีสิทธิ์จัดการฐานข้อมูลที่คุณต้องการแล้วคลิก “ ที่จะเข้ามา».

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


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

6. หลังจากกระบวนการนำเข้า (โหลด) ฐานข้อมูลเสร็จสิ้น (คุณสามารถเข้าใจสิ่งนี้ได้จากแถบความคืบหน้า) งานก็ถือว่าเสร็จสมบูรณ์


ส่งออก (ดาวน์โหลด) ฐานข้อมูล MySQL ขนาดใหญ่ผ่านเทอร์มินัล SSH

SSH เป็นโปรโตคอลเครือข่ายที่ช่วยให้คุณจัดการระบบหรือเซิร์ฟเวอร์จากระยะไกล (ผ่านคำสั่งพิเศษ) มีหลายโปรแกรมสำหรับทำงานกับโปรโตคอลนี้ใน Windows ซึ่งโปรแกรมยอดนิยมที่สุดคือ "PuTTY"

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

1. เปิดเทอร์มินัล ดูเหมือนว่านี้:


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

ที่สอง- นี้:

Mysqldump -u ชื่อผู้ใช้ -p ฐานข้อมูล> backup.sql

การส่งออกโดยตรง โดยที่:

ชื่อผู้ใช้– การเข้าสู่ระบบของผู้ใช้ที่มีสิทธิ์เข้าถึงฐานข้อมูล

ฐานข้อมูล– ชื่อฐานข้อมูลที่เราต้องการส่งออก

การสำรองข้อมูล.sql– ชื่อของไฟล์ที่จะบันทึกฐานข้อมูลและเส้นทางที่เกี่ยวข้องกับ . ด้วยการออกแบบนี้ ฐานข้อมูลจะถูกบันทึกไปที่รูทของโฮสติ้ง

4. ในขั้นตอนที่สามเข้า" บนแป้นพิมพ์ บันทึก

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

กระบวนการส่งออก (และนำเข้า) จะไม่ออกอากาศใน SSH และหากฐานข้อมูลของคุณมีขนาดค่อนข้างใหญ่ โปรดอดทนรอ เนื่องจากคุณอาจได้รับการตอบกลับจากเซิร์ฟเวอร์หลังจากผ่านไปนานกว่า 20 นาที

นำเข้า (ดาวน์โหลด) ฐานข้อมูล MySQL ขนาดใหญ่ผ่านเทอร์มินัล SSH

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

1. สู่รากเหง้าของคุณโฮสติ้ง ดาวน์โหลดฐานข้อมูลที่ดาวน์โหลดมาก่อนหน้านี้ในวิธีที่สะดวกสำหรับคุณ

2. เชื่อมต่อกับโฮสติ้ง/เซิร์ฟเวอร์ของคุณผ่าน SSH

ดังนั้นเราจึงไปที่รากของโฮสติ้งอย่างแน่นอนและ ที่สอง- นี้:

ดังนั้นเราจึงได้รับรายการไฟล์และไดเร็กทอรีทั้งหมดของไดเร็กทอรีปัจจุบัน ตรวจสอบให้แน่ใจว่าฐานข้อมูลที่เราดาวน์โหลดก่อนหน้านี้เป็นหนึ่งในนั้น

4. หากทุกอย่างเรียบร้อยดีและมีฐานเข้าที่แล้ว ให้ป้อนคำสั่งสุดท้าย:

Mysql -u ชื่อผู้ใช้ -p ฐานข้อมูล< backup.sql

ชื่อผู้ใช้– การเข้าสู่ระบบของผู้ใช้ที่มีสิทธิ์เข้าถึงฐานข้อมูล

ฐานข้อมูล– ชื่อของฐานข้อมูลที่เราจะนำเข้าข้อมูลเข้าไป

การสำรองข้อมูล.sql– ชื่อของไฟล์ที่จะดาวน์โหลดและเส้นทางที่เกี่ยวข้องกับ . ด้วยการออกแบบนี้ ฐานข้อมูลจะถูกนำเข้าจากรูทของโฮสต์

5. หลังจากป้อนคำสั่งแล้ว คุณจะได้รับแจ้งให้ป้อนรหัสผ่านสำหรับผู้ใช้ที่คุณระบุ ในขั้นตอนที่สี่. ใส่รหัสผ่านของคุณแล้วคลิก " เข้า" บนแป้นพิมพ์ บันทึกการป้อนรหัสผ่านในเทอร์มินัล SSH จะไม่ปรากฏขึ้นนั่นคือไม่ว่าคุณจะป้อนรหัสผ่านหรือวางรหัสผ่านก็จะมีที่ว่างแทนที่เสมอ

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

หากคุณสำรองหรือส่งออกฐานข้อมูลของคุณไปยังไฟล์ SQL คุณสามารถนำเข้าฐานข้อมูลดังกล่าวไปยังฐานข้อมูล MySQL ของบัญชีโฮสติ้งของคุณผ่านทาง phpMyAdmin

บันทึก.ไม่ควรมีบรรทัด CREATE DATABASE ในฐานข้อมูล MySQL มิฉะนั้นการนำเข้าอาจล้มเหลว

อินเทอร์เฟซ phpMyAdmin ช่วยให้คุณสามารถนำเข้าข้อมูลได้ครั้งละ 8 MB หากคุณต้องการนำเข้าไฟล์ที่มีขนาดใหญ่ขึ้น ให้แบ่งออกเป็นส่วนต่างๆ ขนาด 8 MB

ความสนใจ!หากคุณกำลังนำเข้าฐานข้อมูลสำหรับโฮสติ้ง WordPress ที่มีการจัดการ เพื่อให้เว็บไซต์ของคุณทำงานได้อย่างราบรื่น

การนำเข้าไฟล์ SQL ไปยังฐานข้อมูล MySQL โดยใช้ phpMyAdmin

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

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