Posted on : 07-04-2011 | By :
admin | In :
mysql
ในหัวข้อที่แล้ว
เราได้เรียนรู้วีธีการ import ไฟล์เข้าสู่ Mysql ด้วยคำสั่งประมาณนี้ไปแล้ว
mysql -u root -p < db.sql
แต่ในกรณีที่ไฟล์ *.sql ของเราเป็นภาษาไทย ถ้่ใช้คำสั่งนั้นตรงๆ ภาษาไทยที่เข้าไปอยู่ใน table จะอ่านไม่ออก ( เป็น ????? หรือเป็นอักขระที่อ่านไม่ออก )
วิธีการที่เราจะ import ไฟล์ภาษาไทยได้จะเป็นดังนี้
1. ใช้โปรแกรม Editplus หรือโปรแกรมที่สามารถ Save ไฟล์เป็น UTF-8 ได้ เปิดไฟล์ แล้ว Save as ไฟล์เป็น UTF-8
2. ใช้คำสั่ง mysql -u root -p –default_character_set utf8 < db.sql
แค่นี้เราก็จะสามารถ import หรือ restore ไฟล์ภาษาไทยเข้าสู่ Mysql database ได้แล้ว ไม่ต้องพึ่ง phpMyAdmin ที่มีข้อจำกัดเวลาทำงานกับไฟล์ใหญ่ๆ
Posted on : 28-03-2011 | By :
admin | In :
mysql
ในบางครั้ง บางที บางกรณี บางโอกาส เพื่อนๆ คงเคยจำเป็นที่จะต้องใช้การ Query จาก ผลที่ query ออกมาแล้ว
บางคนอาจจะใช้วิธี query data ออกมาแล้วไปใส่ temp table ไว้ จากนั้นจึงค่อยไป query ออกมาจาก temp table อีกครั้ง
จริงๆ แล้วมีวิธีการที่จะ query แบบ select ซ้อน select ดังตัวอย่างต่อไปนี้
| id | name | sex | money| vip |
| 1 | John | male | 1000 | yes |
| 2 | Marry | female | 500 | no |
| 3 |Bird |mail |1500 | yes |
SELECT id AS id , name AS name , money AS money FROM
( SELECT id AS id ,name AS name,money AS money, vip AS vip FROM `customer` WHERE sex = ‘male’ ORDER BY id DESC ) AS TBL WHERE money > ’500′
ผลลัพธ์
| id | name | sex | money|
| 1 | John | male | 1000 |
| 3 |Bird |mail |1500 |
ในตัวอย่างจะเห็นได้ว่า select ซ้อน select สามารถทำได้ โดยเฉพาะในกรณีจะมีประโยชน์มากๆครับ
Posted on : 12-07-2010 | By :
admin | In :
mysql
ปกติแล้วหลายๆคน คงจะทำการ backup mysql ผ่าน phpMyAdmin แต่เนื่องด้วยข้อจำกัดเวลาขนาดของข้อมูลใหญ่มากๆ หรือต้องการสั่งให้ run แบบตั้งเวลา(ด้วย crontab) จะทำไม่ได้ ดังนั้น mysqldump เป็นคำตอบ
รูปแบบของคำสั่ง mysqldump
shell> mysqldump [options] db_name [tables]
shell> mysqldump [options] –databases db_name1 [db_name2 db_name3...]
shell> mysqldump [options] –all-databases
ตัวอย่างการใช้
backup บาง database บาง table ไปยังไฟล์ db.sql
mysqldump -u root -p databasename -tables tablename > db.sql
backup ทั้งหมด ไปยังไฟล์ db.sql
mysqldump -u root -p –all-databases > db.sql
การ restore
mysql -u root -p < db.sql
Posted on : 28-03-2010 | By :
admin | In :
mysql
โดยปกติแล้วโดย default ของ mysql จะไม่มีการเปิดใช้ cache ทำให้ต้องทำการ query ใหม่ทุกครั้ง
เราสามารถทำการเปิดการใช้ cache ได้โดยการแก้ไขค่าในไฟล์ ⁄etc⁄my.cnf
แต่ก่อนอื่นต้องเช็คดูก่อนว่า server ของเรามีไฟล์ ⁄etc⁄my.cnf อยู่หรือยัง ถ้ายังให้ช้คำสั่งนี้เพื่อหาตัวอย่างไฟล์ my.cnf ในเครื่องของเรา
#find ⁄ -name *.cnf
จะใช้ไฟล์ไหนขึ้นอยู่กับ Ram ของเรา รายละเอียดดูในแต่ละไฟล์ได้เลย
จากนั้น copy file นั้นไปเป็น my.cnf โดยคำสั่ง
#cp (file) ⁄etc⁄my.cnf
จากนั้นทำการแก้ไข ⁄etc⁄my.cnf โดยเพิ่มบรรทัดนี้เข้าไป
query_cache_type= 1
แล้วอาจจะทำการ เพิ่มขนาดของ cache โดยแก้
query_cache_size= 64M
ในตัวอย่างเพิ่ม cache เป็น 64M
จากนั้น restart mysql ด้วยคำสั่ง
service mysqld restart
เป็นอันเสร็จ

0