หลังจากที่ผมหันมาใช้ VPS เมืองนอกเป็นครั้งแรก ก็เจอเรื่องตกตะลึงมากมาย ตั้งแต่การติดตั้งระบบหลังบ้านเองทั้งหมด การตั้งค่าความปลอดภัยนั่นนี่ทั้งหมด ชนิดที่เงิบไปเลย แต่สุดท้ายมันก็ทำสำเร็จและฟินจนได้ ซึ่งปัญหาที่โลกแตกที่สุดสำหรับผมตอนนั้นก็คือ จะอิมพอร์ตไฟล์ sql ที่มันเบิ้มๆ ลง phpMyAdmin ยังไงนะ ปรับค่าใน php.ini ใน my.cnf ก็แล้ว ไม่ได้เรื่อง แถมลองใช้ bigdump ตามที่เขาแนะนำมา ก็ดันเกิดเออเรอร์ แล้วข้อมูลที่จะอิมพอร์ตก็ฝุดในหน้า bigdump.php จนเบราเซอร์ค้างไปเลยจ้า!
แล้วผมก็พบวิธีสุดเจ๋ง กับการจัดการส่งไฟล์ sql ด้วย putty (อ้อ! วิธีนี้สำหรับ VPS เท่านั้นนะครับ)
อันนี้เป็นคำสั่งที่ผมใช้ผ่าน root บนระบบปฏิบัติการ CentOS 6 64bit ครับ
จัดการ export ไฟล์ sql ที่ต้องการมาในรูปแบบของ sql.gz นะครับ ย้ำ .gz ผมลอง .zip ไม่ได้นะ
จากนั้นทำการอัปโหลดผ่าน ftp ไปไว้ในโฟลเดอร์ /root/
เริ่มแรกเลยก็คือการให้ระยะเวลาในการอิมพอร์ตนานขึ้นจะได้ไม่เจ๊งระหว่างทาง โดยแก้ไขที่
nano /etc/my.cnf
จากนั้นใน my.cnf ปรับเพิ่มค่าแบบนี้ครับ
[mysqld]
max_allowed_packet = 64M
[mysqldump]
max_allowed_packet = 64M
จากนั้นทำการบันทึกแล้วออกจากไฟล์ แล้วทำการรีสตาร์ต
service mysqld restart
ทีนี้ก็มาถึงขั้นตอนการอิมพอร์ตไฟล์ดาต้าเบสกันละ
พิมพ์คำสั่ง
gunzip ชื่อไฟล์.sql.gz
// เพื่อสั่งให้คลายซิปไฟล์
ต่อด้วย
Is ชื่อไฟล์.sql
// ตัด .gz ออก เพราะสั่งให้คลายซิปไฟล์
ตามด้วย
mysql -u username -p -D databasename < ชื่อไฟล์.sql
ีusername คือ ชื่อที่ใช้ล็อกอินเข้าไปจัดการ database ที่เราตั้งไว้สำหรับดาต้าเบสที่เราจะอิมพอร์ตเข้าไป
databasename ก็คือดาต้าเบสอะเนอะ 55+
จากนั้นระบบจะแจ้งให้เรากรอกรหัสผ่าน ซึ่งให้กรอกรหัสผ่านที่เราใช้ล็อกอินดาต้าเบสนะ // ผมลองใส่รหัสผ่านหลัง -p แล้วมันก็ถามหารหัสผ่านอยู่ดี
แล้วที่นี้เราก็รอให้มันอิมพอร์ต ไฟล์ผม 56mb ไม่ถึง 5 นาทีก็เสร็จเรียบร้อย สวยๆ เลย!
เท่านี้ครับ เราก็จะหมดปัญหาเรื่องการอิมพอร์ตไฟล์ sql เบิ้มๆ อีกต่อไป แต่ผมไม่แน่ใจว่าถ้าไม่ทำงานผ่าน root จะทำได้ไหม ต้องบอกว่าไม่เคยครับ นี่คือครั้งแรกที่ผมจัดการกับ putty แบบเต็มๆ ศึกษาจากเว็บนอกแบบปวดหัวเลย แต่พอสำเร็จก็สะใจดี!