คลังเก็บบล็อก

การ import MySQL ขนาดใหญ่


ถ้าใช้ phpmyadmin อาจจะไม่สะดวกนัก จากการที่ต้อง browse ไฟล์ขนาดใหญ่ขึ้นไปถ้าอินเตอร์เน็ตช้า (ทั้งของ server และของเราเอง) อาจจะต้องส่งไฟล์ขึ้นไปหลายๆครั้ง กว่าที่การ upload ไฟล์ขึ้นไปจะสมบูรณ์

แก้โดยเปลี่ยนไปใช้ tool ตัวอื่นช่วย import ไฟล์ sql ขนาดใหญ่เข้า MySQL ไปโหลด BigDump แตกไฟล์ออกมา มีไฟล์เดียวนั่นละ เปิดออกมาแก้ Configuration file ไม่กี่บรรทัด

// Database configuration
$db_server   = 'localhost';
$db_name     = 'largeDB'; // ชื่อ db เป้าหมาย
$db_username = 'root'; // ชื่อ username
$db_password = ''; // รหัสผ่าน
$max_query_lines = 300000; //ใส่ไปเยอะๆแก้ปัญหาเจอ error at this place the current query includes more than 300 dump lines.

วิธีใช้ก็แค่

  • ใช้ ftp upload file bigdump.php และ ไฟล์ sql ที่ใช้ทั้งหมดขึ้นไปไว้ใน folder เดียวกัน
  • เปิดหน้าเว็บเรียกURL http://your URL/path to folder/bigdump.php จะเห็นชื่อไฟล์ sql ที่อัพโหลดขึ้นไปกด Start Import เท่านั้นเอง

ดูเพิ่มเติม

ย้ายฐานข้อมูล mysql ขนาดใหญ่


เวลาต้องย้าย server เว็บเก่าๆที่เจอปัญหาบ่อยๆคือไฟล์ sql ที่ export จาก mysql database มีขนาดใหญ่มากๆ import ผ่าน phpmyadmin ก็ไม่ได้ จะupload ผ่าน ftp แล้วใช้ big dump ช่วยไฟล์ก็ใหญ่เกินกว่าที่ทางเซิร์ฟเวอร์อนุญาตไว้ซะอีก เดิมใช้วิธี copy ที่ละช่วงๆเวลาจะคัดลอกก็ต้องดูว่าจบด้วยเครื่องหมาย ; ทำไปทำมาเจอว่าตัดออกมาแล้ว เผลอวางซ้ำสองครั้ง ลืม paste ก็มี
จนได้เจอกับโปรแกรม SQL Dump Splitter เวลาใช้

  1. ให้เลือก browse ไฟล์ sql ที่ export ออกมา
  2. เลือกขนาดไฟล์ย่อยที่จะแบ่งออกมา จะยอมให้ไม่เกินเท่าไหร่ ดูได้จาก upload_max_filesize, memory_limit และ post_max_size ใน function phpinfo()
  3. เลือกว่าจะเก็บไฟล์ผลลัพธ์ไว้ที่ไหน โดนมันจะสร้างไฟล์ไว้ใน folder SQLDumpSplitterResult อีกทีหนึ่ง
  4. กด Execute

โดยใน folder SQLDumpSplitterResult จะมีไฟล์ ชื่อไฟล์ต้นฉบับต่อด้วย_DataStructure.sql เก็บโครงสร้างของฐานข้อมูลเอาไว้ ทำให้เวลา import เราต้องอิมพอตไฟล์นี้ก่อนไฟล์อื่นๆ จะให้ phpMyAdmin หรือตัวอื่นๆที่โฮสต์เตรียมไว้ให้ก็ได้ ส่วนข้อมูลจะโดนแยกตามรูปแบบ ชื่อไฟล์ต้นฉบับต่อด้วย_ลำดับ.sql ให้นำเข้าไปในฐานข้อมูลมายเอสคิวเอลตามลำดับ

%d bloggers like this: