วิธีตั้งค่าให้ mysql เก็บ log query ที่ทำงานช้า ไว้ในไฟล์ เพื่อนำมาแก้ปัญหา
1.Log in เข้า mysql
# mysql
2. กำหนด path สำหรับเก็บ log. และค่าต่างๆ ดังนี้ เช่น ตัวอย่างผมเก็บไว้ที่
#pico /var/log/mysql/slow_query.log
mysql> SET GLOBAL slow_query_log_file = '/var/log/mysql/slow_query.log'; mysql> SET GLOBAL long_query_time = 10; mysql> SET GLOBAL slow_query_log = 'ON'; mysql> FLUSH LOGS; mysql> SET GLOBAL log_queries_not_using_indexes = 'YES';
3. จากนั้น Save แล้วไปสร้างไฟล์เพื่อเก็บ log ตาม ข้อ 2.
#touch /var/log/mysql/slow_query.log #chown mysql:mysql /var/log/mysql/slow_query.log
4.ทดสอบ เรียก Query หนักๆๆๆ แล้ว ดูการเก็บ log
#tail -f /var/log/mysql/slow_query.log
5. เมื่อได้แล้ว ให้ไปเขียนใน /etc/my.cnf เพื่อให้ทำงานทุกครั้งที่มีการ restart
[mysqld] ... #slow query slow_query_log = 1 slow_query_log_file="/var/log/mysql/log-slow-queries.log" log_queries_not_using_indexes long_query_time = 10
ลองนำไปใช้ดูนะครับ
Off
18
Jan