เกิดข้อผิดพลาดตำแหน่งบันทึก?


15

MySQL เขียนล็อกไฟล์หรือไม่? ถ้าใช่เส้นทางของมันคืออะไร (บน Ubuntu / Linux)?

คำตอบ:


11
  • บันทึกทั่วไป - คำค้นหาทั้งหมด - ดูหลากหลาย general_log
  • บันทึกช้า - คำค้นหาช้ากว่าlong_query_time-slow_query_log_file
  • Binlog - สำหรับการจำลองแบบและสำรอง - log_bin_basename
  • บันทึกการถ่ายทอด - นอกจากนี้สำหรับการจำลองแบบ
  • ข้อผิดพลาดทั่วไป - mysqld.err
  • start / stop - mysql.log(ไม่ค่อยน่าสนใจ) -log_error
  • InnoDB ทำซ้ำบันทึก - iblog*

ดูตัวแปรbasedirและdatadirตำแหน่งเริ่มต้นสำหรับบันทึกจำนวนมาก

บันทึกบางส่วนถูกเปิด / ปิดโดย VARIABLES อื่น บางคนเขียนไปยังไฟล์หรือตาราง


3

ล็อก 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


2

ใช่ MySQL เขียนไฟล์บันทึก

เส้นทางของมันคือ/var/log/mysql.logกำหนดไว้ในlog_errorตัวแปร config

นอกจากนี้ยังมีไฟล์บันทึกข้อผิดพลาด /var/log/mysql.err


2

นอกเหนือจากบันทึกข้อผิดพลาดบน Windows จะไม่มีการเปิดใช้งานบันทึก MySQL นี่คือการเพิ่มทรัพยากรเซิร์ฟเวอร์สำหรับฐานข้อมูล ด้วยเหตุนี้จึงแนะนำให้เปิดใช้งานตามความจำเป็น

ซึ่งอาจทำให้เป็นการยากที่จะทราบว่ามีการเปิดใช้งานบันทึกใดในเวลาใดก็ตาม ด้วยเหตุนี้ฉันจึงต้องการให้ตัวแปรการกำหนดค่าทั้งหมดของฉันอยู่ในที่เดียวเพื่อให้สามารถค้นหาได้อย่างรวดเร็ว มีเครื่องมือ GUI บางอย่างที่ดีสำหรับสิ่งนี้ ฉันใช้Navicat สำหรับ MySQLและNavicat Premium เป็นการส่วนตัว

ทั้งสองมีเครื่องมือการตรวจสอบที่มีแท็บที่มีตัวแปรเซิร์ฟเวอร์ทั้งหมดในรายการที่ครอบคลุมหนึ่งรายการ

ตัวแปรเซิร์ฟเวอร์ general_log และ general_log_file ในเครื่องมือ Navicat Server Monitor

ขอแสดงความนับถืออย่างสูง!


อนิจจานั่นจะเป็นการตั้งค่าจนกว่าจะรีสตาร์ทครั้งถัดไปเท่านั้น OTOH บันทึกทั่วไปนั้นค่อนข้างเหมือนดิสก์ดังนั้นจึงเป็นการดีที่จะปิดทันทีหลังจากได้รับข้อมูลที่คุณต้องการ (อาจมีการบันทึกอื่น ๆ ได้)
Rick James

1

เรียกใช้คำสั่งด้านล่างบนเทอร์มินัลเพื่อค้นหาเส้นทางที่แน่นอน:

 mysqladmin variables | grep log_error

1

/var/log/ไฟล์บันทึกมักจะตั้งอยู่ที่ ไฟล์บันทึกของเซิร์ฟเวอร์ MySQL มักจะระบุโดย mysql.nameOfLogFile


1

สายนี่หน่อย

คุณสามารถค้นหาตำแหน่งล็อกไฟล์ปัจจุบันภายใน MYSQL โดยตรวจสอบตัวแปรโกลบอล

ตัวอย่างเช่นด้านล่างจะแสดงว่า General_log ของคุณเปิดหรือปิดและตำแหน่ง general_log_file ในระบบของคุณ

SHOW GLOBAL VARIABLES LIKE '%general%';
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.