Category: Database

[Bug] Invalid of GRANT command will breaks replication

MySQL 5.6 มี bug ที่ควรระวัง คือการรันคำสั่ง GRANT privileges บน PhpMyAdmin อาจทำให้เกิด slave หยุด replicate ข้อมูลได้ (bug report: http://bugs.mysql.com/bug.php?id=68892) หลังจากได้ใช้งาน MySQL 5.6 (version 5.6.14-1) แบบ replication ก็พบปัญหาการใช้งานเมื่อทำการ GRANT สิทธิให้กับ user บน…

How to compress mysqldump output with gzip/bzip2

mysqldump คือคำสั่งที่ใช้ในการ export ข้อมูลใน MySQL ออกมาในรูปแบบของ sql format ซึ่งนิยมนำมาใช้ในการ backup ข้อมูลบน MySQL โดยทั่วไปแล้วเวลา backup database ด้วย mysqldump จะไม่มีการ compress ข้อมูลดังนั้นถ้าหากข้อมูลมีขนาดใหญ่จะทำให้ไฟล์ที่ได้จาก mysqldump มีขนาดใหญ่ตาม ดังนั้นในบทความนี้จะนำเสนอวิธีการ backup และ restore พร้อม compress ข้อมูลไปพร้อมๆกัน จะช่วยให้ประหยัดเนื้อที่จัดเก็บข้อมูล…

Find top frequently using queries on MySQL

MySQL tip: การหา top 10 query บน MYSQL ที่ถูกใช้งานมากที่สุดในช่วงเวลาหนึ่งๆ โดยการหา top 10 query นี้สามารถทำได้ 2 วิธีด้วยกัน คือ ใช้ tcpdump หรือ mysqlbinlog ในการนำ query ต่างๆ มาเข้า process การจัดลำดับ หา top 10…

How to copy a table in MySQL

MySQL database เราสามารถ copy table (โครงสร้างและข้อมูลต่างๆ) ได้ด้วยง่ายๆ ดังนี้ สมมติต้องการสร้าง table ชื่อ table_new มาใหม่ โดยให้มีโครงสร้างและข้อมูลจาก table ชื่อ table_name สามารถทำได้ดังนี้ 1. Create copy table ใหม่ด้วยคำสั่ง

How to uses mysqldump to get structure or schema data only

โดยทั่วไปแล้วเราจะใช้ mysqldump ในการ export ข้อมูลของ database ออกมาซึ่งข้อมูลที่ export ออกมาจะมีทั้ง structure (schema) และข้อมูลของ database นั้นๆ แต่ถ้าหากต้องการ export เฉพาะ structure (schema) ของ database อย่างเดียวให้เพิ่ม option -d หรือ –no-data เข้าไปก็จะสามารถ export ออกมาแค่ structure…

How to remove/purge MySQL binary logs

MySQL ถ้าหากมีการเปิดใช้งาน binary log จะทำให้มีการเสียเนื้อที่บางส่วนไป ซึ่งถ้าหากไม่มีการกำหนดวันและเวลาในการ expire ของ binary log ดีๆแล้วจะทำให้มีโอกาสเกิดปัญหาเรื่องเนื้อที่ไม่พอใช้งานเกิดขึ้นอย่างแน่นอน ถ้าหากเกิดปัญหา binary log ใช้เนื้อที่ในการเก็บข้อมูลเยอะมาก และต้องการลบออกไปบางส่วนเพื่อให้มีเนื้อที่พอใช้งานจำเป็นต้องรันคำสั่งบน MySQL เท่านั้น ไม่สามารถรันคำสั่งลบจาก OS ได้เหมือนการลบไฟล์ทั่วไป ดังนั้นควรทำตามขั้นตอนการลบ binary log ดังนี้

Tips for speeding up dump and import data in MySQL

เมื่อต้อง import ข้อมูล SQL จำนวนมหาศาลเข้าไปยัง MySQL server โดยปกติแล้วจะใช้เวลาในการ import ค่อนข้างนาน แต่ก็สามารถช่วยเร่ง speed การ import ให้ไวมากขึ้นกว่าเดิมได้โดยใช้ tip เล็กๆ น้อยๆ ดังต่อไปในในการ import ข้อมูล SQL จำนวนมหาศาล ปิดการใช้งาน index ชั่วคราว (Disable index) การปิดการใช้งาน index…

Check MySQL database size using SQL query

SQL query สำหรับตรวจสอบเนื่อที่การใช้งานของ database และ table ต่างๆบน MySQL Check size of all database ตรวจสอบขนาดเนื่อที่ของแต่ละ database บน MySQL สามารถทำได้รันคำสั่งด้านล่าง

How to disable InnoDB storage engine on MySQL

โดย default แล้ว MySQL จะเปิดใช้งาน InnoDB storage engine อยู่แล้ว ดังนั้นถ้าหากไม่ต้องการใช้งาน InnoDB storage engine ก็ให้ปิดการใช้งานไปเลยเพื่อประหยัดทรัพยากรของระบบ โดยวิธีการปิดการใช้งาน InnoDB สามารถทำได้โดย