MySQL เขียนล็อกไฟล์หรือไม่? ถ้าใช่เส้นทางของมันคืออะไร (บน Ubuntu / Linux)?
MySQL เขียนล็อกไฟล์หรือไม่? ถ้าใช่เส้นทางของมันคืออะไร (บน Ubuntu / Linux)?
คำตอบ:
general_log
long_query_time
-slow_query_log_file
log_bin_basename
mysqld.err
mysql.log
(ไม่ค่อยน่าสนใจ) -log_error
iblog*
ดูตัวแปรbasedir
และdatadir
ตำแหน่งเริ่มต้นสำหรับบันทึกจำนวนมาก
บันทึกบางส่วนถูกเปิด / ปิดโดย VARIABLES อื่น บางคนเขียนไปยังไฟล์หรือตาราง
ล็อก MySQL ถูกกำหนดโดยตัวแปรทั่วโลกเช่น:
log_error
สำหรับบันทึกข้อความแสดงข้อผิดพลาด;general_log_file
สำหรับไฟล์บันทึกการสืบค้นทั่วไป (ถ้าเปิดใช้งานโดยgeneral_log
);slow_query_log_file
สำหรับไฟล์บันทึกการสืบค้นที่ช้า (หากเปิดใช้งานโดยslow_query_log
);หากต้องการดูการตั้งค่าและตำแหน่งของบันทึกให้เรียกใช้คำสั่งเชลล์นี้:
mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log
ขอบคุณ @kenorb ที่/programming//a/37685324/470749
ใช่ MySQL เขียนไฟล์บันทึก
เส้นทางของมันคือ/var/log/mysql.log
กำหนดไว้ในlog_error
ตัวแปร config
นอกจากนี้ยังมีไฟล์บันทึกข้อผิดพลาด /var/log/mysql.err
นอกเหนือจากบันทึกข้อผิดพลาดบน Windows จะไม่มีการเปิดใช้งานบันทึก MySQL นี่คือการเพิ่มทรัพยากรเซิร์ฟเวอร์สำหรับฐานข้อมูล ด้วยเหตุนี้จึงแนะนำให้เปิดใช้งานตามความจำเป็น
ซึ่งอาจทำให้เป็นการยากที่จะทราบว่ามีการเปิดใช้งานบันทึกใดในเวลาใดก็ตาม ด้วยเหตุนี้ฉันจึงต้องการให้ตัวแปรการกำหนดค่าทั้งหมดของฉันอยู่ในที่เดียวเพื่อให้สามารถค้นหาได้อย่างรวดเร็ว มีเครื่องมือ GUI บางอย่างที่ดีสำหรับสิ่งนี้ ฉันใช้Navicat สำหรับ MySQLและNavicat Premium เป็นการส่วนตัว
ทั้งสองมีเครื่องมือการตรวจสอบที่มีแท็บที่มีตัวแปรเซิร์ฟเวอร์ทั้งหมดในรายการที่ครอบคลุมหนึ่งรายการ
ขอแสดงความนับถืออย่างสูง!
เรียกใช้คำสั่งด้านล่างบนเทอร์มินัลเพื่อค้นหาเส้นทางที่แน่นอน:
mysqladmin variables | grep log_error
/var/log/
ไฟล์บันทึกมักจะตั้งอยู่ที่ ไฟล์บันทึกของเซิร์ฟเวอร์ MySQL มักจะระบุโดย mysql.nameOfLogFile
สายนี่หน่อย
คุณสามารถค้นหาตำแหน่งล็อกไฟล์ปัจจุบันภายใน MYSQL โดยตรวจสอบตัวแปรโกลบอล
ตัวอย่างเช่นด้านล่างจะแสดงว่า General_log ของคุณเปิดหรือปิดและตำแหน่ง general_log_file ในระบบของคุณ
SHOW GLOBAL VARIABLES LIKE '%general%';