Tag: Database

How to convert all MyISAM tables to InnoDB in a MySQL Database

วิธีการเปลี่ยน storage engine จาก MyISAM เป็น InnoDB ทีละหลายๆ table สามารถทำได้โดยรันคำสั่ง SELECT CONCAT… เพื่อสร้างคำสั่งในการ convert storage engine จาก MyISAM เป็น InnoDB และเราก็นำผลลัพธ์จากคำสั่งนี้ไปรันต่อที่ MySQL console เพื่อแก้ไข storage engine ได้โดยไม่ต้องพิมพ์ให้เมื่อยและยังครบถ้วนทุก table ที่ต้องการ convert…

Fix missing dependency libmysqlclient.so.15 when installing MySQL-python via yum

สำหรับเครื่อง centos 5 ที่ใช้งาน MySQL ที่สูงกว่า version ที่มาพร้อมกับ OS อาจประสบปัญหาการลง MySQL-python ไม่ว่าจะผ่าน yum หรือ rpm เพราะโปรแกรมทั้งสองจะฟ้องว่าไม่พบไฟล์ libmysqlclient_r.so.15 ซึ่งเป็นไฟล์ที่ package MySQL-python ต้องการ และถ้าหากติดตั้ง MySQL-python โดยไม่สนใจไฟล์ libmysqlclient_r.so.15 ก็ไม่สามารถใช้งานได้

Mass killing MySQL connections

เมื่อเกิดเหตุการ MySQL มีจำนวน connection มากเกินไปจนทำให้เครื่องทำงานช้า หรือเกิดเหตุการ Table ใน database เกิดการ Lock ขึ้นมา จากเหตุการณ์เช่นนี้เราจำเป็นต้องทำให้ระบบกลับมาให้สามารถทำงานได้โดยเกิด down time น้อยที่สุด สำหรับผมแล้วการแก้ไขปัญหาดังกล่าวจึงเลือกที่จะ kill connections ที่ค้างอยู่ออกให้หมด โดยเลือกจะเลือกที่จะเลือก connection ที่เป็น Query และมีการทำงานที่นานกว่า Query อื่นๆ หรือมีสถานะเป็น Locked เป็นหลัก…

How to find all tables use particular storage engine on MySQL

MySQL รองรับ table engine อยู่หลากหลาย ไม่ว่าจะเป็น MyISAM, InnoDB, MEMORY, NDB เป็นต้น ดังนั้นหลายคนอาจคิดว่าเมื่อต้องตรวจสอบว่า table นี้ใช้ engine อะไรคงวุ่นวายไม่ใช่เล่น แต่จริงๆแล้วสามารถทำการค้นหาได้ไม่อยากเย็นอะไร โดยเราจะ query ข้อมูลใน database INFORMATION_SCHEMA ซึ่งภายในเก็บข้อมูลเกี่ยวกับ table ไหนใช้ engine อะไรไว้อยู่แล้ว

MySQL replication: ‘show master status’ shows ‘Empty set (0.00 sec)’

หลังจากได้เตรียม server สำหรับ MySQL replication ด้วยการทำให้ข้อมูลของทั้งสองเครื่องเหมือนกันเรียบร้อยแล้ว ก็มาถึงขั้นตอนการ setup replication ซึ่งขั้นตอนนี้จะต้องรันคำสั่ง “show master status” เพื่อตรวจสอบ bin-log และ position ที่เครื่อง master เพื่อนำข้อมูลที่ได้ไปใช้กับคำสั่ง CHANGE MASTER TO ที่เครื่อง slave แต่เมื่อรันคำสั่ง “show master status” ที่เครื่อง…

ติดตั้ง MySQL Cluster

ในบทความนี้จะใช้เครื่องจำนวน 4 เครื่อง โดยแต่ละเครื่องจะมีหน้าที่ storages node จำนวน 2 เครื่อง (mysql-ndb-1 และ mysql-ndb-2) API node จำนวน 1 เครื่อง (mysql-api-1) และ Management node จำนวน 1 เครื่อง (mgmt) package สำหรับการติดตั้ง MySQL Cluster MySQL-clustermanagement-community.xxxx.rpm,…