วิธีการบันทึกแบบสอบถาม MySQL ทั้งหมดลงในไฟล์บันทึกได้อย่างไร


17

ฉันใช้ Mysql 5.6.12 ภายใต้สภาพแวดล้อมเซิร์ฟเวอร์ Wamp ตอนนี้ฉันต้องการบันทึกคำค้นหาทั้งหมดลงในไฟล์ ".log" ข้อความค้นหาที่เรียกใช้โดย PHP หรือจาก PHPMyAdmin ฉันต้องการบันทึกข้อความเหล่านี้ ...

คำตอบ:


20
[mysqld]
# Set Slow Query Log
long_query_time = 1
slow_query_log = 1
slow_query_log_file = /usr/log/slowquery.log
log_queries_not_using_indexes = 1

#Set General Log
general_log = on
general_log_file=/usr/log/general.log

โปรดทราบว่าการเปิดใช้งานgeneral_logบนเซิร์ฟเวอร์ที่ใช้งานจริงมีค่าใช้จ่ายที่คุณควรหลีกเลี่ยง คุณสามารถตรวจสอบคำค้นหาที่มีปัญหาslow logได้


1
สำหรับฉันฉันต้องใช้ "general_log = 1" แทน "general_log = on"
GuyPaddock

ทำงานบน Wamp Server โดยใช้ mysql 5.6.7 สิ่งเดียวที่ฉันต้องเปลี่ยนคือพา ธ ไปยังไฟล์ tje ในกรณีของฉัน C: \ wamp \ logs \ mysql_query.log
Mário Rodrigues

ทำไมค่าการตั้งค่าเหล่านี้ทั้งหมด? เพียงgeneral_logและgeneral_log_fileเพียงพอ
เรนท์

8

เนื่องจากนี่เป็นประเภทของสิ่งที่คุณอาจต้องการทำชั่วคราวเท่านั้นจึงอาจมีประโยชน์ที่จะทำสิ่งนี้จากเชลล์แทนที่จะใช้ไฟล์ config:

> set global general_log_file = "/var/log/mysql/queries.log";
> set global general_log = "ON";
[wait some time, hit some pages, whatever]
> set global general_log = "OFF";

5

ใส่สองบรรทัดนี้ใน my.cnf

[mysqld]

general_log     = on
general_log_file=/users/ugrad/linehanp/mydb/logfile.txt

สิ่งนี้จะบันทึกการสืบค้นทั้งหมดไปยังเซิร์ฟเวอร์จากแหล่งใด ๆ ไม่ใช่แค่ PHP / PHPMyAdmin

โปรดระวัง - การเปิดใช้งานบันทึกทั่วไปสามารถวางภาระหนักบนเซิร์ฟเวอร์ของคุณ ที่จะใช้เท่าที่จำเป็นสำหรับช่วงเวลาสั้น ๆ / การแก้จุดบกพร่องเท่านั้น

เอกสารที่มีอยู่ที่นี่ ไปๆมาๆ

หากต้องการปิดใช้งานหรือเปิดใช้งานบันทึกการสืบค้นทั่วไปหรือเปลี่ยนชื่อไฟล์บันทึกที่รันไทม์ให้ใช้ตัวแปรระบบ general_log และ general_log_file ทั่วไป ตั้งค่า general_log เป็น 0 (หรือปิด) เพื่อปิดใช้งานบันทึกหรือเป็น 1 (หรือเปิด) เพื่อเปิดใช้งาน ตั้งค่า general_log_file เพื่อระบุชื่อของไฟล์บันทึก

ดังนั้น,

general_log     = on

และ

general_log     = 1

คำพ้องความหมาย!


สำหรับฉันฉันต้องใช้ "general_log = 1" แทน "general_log = on"
GuyPaddock

@GuyPaddock คุณใช้ MySQL รุ่นใดอยู่
Vérace
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.