ฉันใช้ Mysql 5.6.12 ภายใต้สภาพแวดล้อมเซิร์ฟเวอร์ Wamp ตอนนี้ฉันต้องการบันทึกคำค้นหาทั้งหมดลงในไฟล์ ".log" ข้อความค้นหาที่เรียกใช้โดย PHP หรือจาก PHPMyAdmin ฉันต้องการบันทึกข้อความเหล่านี้ ...
ฉันใช้ Mysql 5.6.12 ภายใต้สภาพแวดล้อมเซิร์ฟเวอร์ Wamp ตอนนี้ฉันต้องการบันทึกคำค้นหาทั้งหมดลงในไฟล์ ".log" ข้อความค้นหาที่เรียกใช้โดย PHP หรือจาก PHPMyAdmin ฉันต้องการบันทึกข้อความเหล่านี้ ...
คำตอบ:
[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
ได้
general_log
และgeneral_log_file
เพียงพอ
เนื่องจากนี่เป็นประเภทของสิ่งที่คุณอาจต้องการทำชั่วคราวเท่านั้นจึงอาจมีประโยชน์ที่จะทำสิ่งนี้จากเชลล์แทนที่จะใช้ไฟล์ 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";
ใส่สองบรรทัดนี้ใน 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
คำพ้องความหมาย!