Recent twitter entries...

  •  

Import Mysql ภาษาไทย ด้วย command line

0

Posted on : 07-04-2011 | By : admin | In : mysql

ในหัวข้อที่แล้ว

Backup mysql database ด้วย คำสั่ง mysqldump

เราได้เรียนรู้วีธีการ 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 ที่มีข้อจำกัดเวลาทำงานกับไฟล์ใหญ่ๆ

Mysql select จาก select ( select ซ้อน select )

0

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 สามารถทำได้ โดยเฉพาะในกรณีจะมีประโยชน์มากๆครับ

Backup mysql database ด้วย คำสั่ง mysqldump

1

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

ปรับ Mysql ให้ใช้ cache เพื่อเพิ่มความเร็ว

0

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

เป็นอันเสร็จ