คำสั่ง SQL เพื่อแสดงประวัติของแบบสอบถาม


112

ฉันต้องการแสดงประวัติคำสั่ง sql ที่ดำเนินการใน MYSQL Query Browser ของฉัน คำสั่ง sql สำหรับแสดงประวัติคืออะไร?


6
ดูเหมือนจะเป็นการรีโพสต์คำถามนี้: stackoverflow.com/questions/650238/…
lazarus

อาจซ้ำกันได้ของHow to show the last queries execute on MySQL?
Siraj Alam

คำตอบ:


161

ลอง

 cat ~/.mysql_history

นี่จะแสดงคำสั่ง mysql ทั้งหมดที่รันบนระบบ


2
ไม่ใช่ทั้งหมดการปราบปรามจะเกิดขึ้นสำหรับบางส่วนที่มีสตริงเช่น "รหัสผ่าน"
mckenzm

1
นอกจากนี้ยังไม่อัปเดตด้วย MySQL CLI ที่เปิดอยู่ดังนั้นคุณน่าจะต้องใช้exitMySQL จากนั้นอ่านไฟล์
Joel Mellon

1
นี่แสดงเฉพาะคำสั่งที่ดำเนินการโดยผู้ใช้ที่ล็อกอิน
Christia

1
วิธีทำใน windowss
ßiansorÅ Ålmerol

มีความเป็นไปได้หรือไม่ที่คำสั่งอื่นจะถูกระงับหรือไม่เรียงลำดับ? และบันทึกจะอัปเดตตัวเองตามเวลาจริงหรือไม่
Drubio

32

สำหรับ MySQL> 5.1.11 หรือ MariaDB

  1. SET GLOBAL log_output = 'TABLE';
  2. SET GLOBAL general_log = 'ON';
  3. ลองดูที่ตาราง mysql.general_log

หากคุณต้องการส่งออกไปยังไฟล์บันทึก:

  1. SET GLOBAL log_output = "FILE";
  2. SET GLOBAL general_log_file = "/path/to/your/logfile.log"
  3. SET GLOBAL general_log = 'ON';

ดังที่ระบุไว้โดย jeffmjack ในความคิดเห็นการตั้งค่าเหล่านี้จะถูกลืมก่อนเซสชันถัดไปเว้นแต่คุณจะแก้ไขไฟล์การกำหนดค่า (เช่นแก้ไข/etc/mysql/my.cnfจากนั้นรีสตาร์ทเพื่อใช้การเปลี่ยนแปลง)

ตอนนี้ถ้าคุณต้องการคุณสามารถทำได้ tail -f /var/log/mysql/mysql.log

ข้อมูลเพิ่มเติมที่นี่: ตัวแปรระบบเซิร์ฟเวอร์


3
คำชี้แจงข้างต้น: คำสั่งคัดลอกวางที่นี่มีไว้สำหรับเซสชันเดียวของ MySQL เช่นคุณสามารถป้อนสิ่งเหล่านี้จากบรรทัดคำสั่ง MySQL แบบโต้ตอบ หากคุณต้องการให้เป็นคุณสมบัติถาวรของอินสแตนซ์ MySQL ของคุณคุณต้องใส่คำสั่งเหล่านั้นใน /etc/mysql/my.cnf และเริ่มบริการ MySQL ใหม่
jeffmjack

โปรดทราบว่าการบันทึกจะหยุดลงหาก/path/to/your/logfile.logถูกลบจนกว่าคุณจะดำเนินการSET GLOBAL general_log_file = "/path/to/your/logfile.log";อีกครั้ง (หรืออาจเริ่มเซสชันใหม่หากคุณแก้ไขการกำหนดค่า?)
Skippy le Grand Gourou

21

(Linux) เปิด Terminal ของคุณctrl+alt+t รันคำสั่ง

 cat ~/.mysql_history

คุณจะได้รับประวัติการค้นหา mysql ก่อนหน้านี้ทั้งหมด :)


19

คุณจะพบมันที่นั่น

~/.mysql_history

คุณจะทำให้อ่านได้ (โดยไม่มีการหลบหนี) ดังนี้:

sed "s/\\\040/ /g" < .mysql_history

2

ดูที่~/.myslgui/query-browser/history.xml นี่คุณจะพบข้อความค้นหาล่าสุดที่สร้างขึ้นด้วยmysql_query_browser (บางวัน)


0

ดูประวัติได้จาก ~ / .mysql_history อย่างไรก็ตามเนื้อหาของไฟล์ถูกเข้ารหัสโดย wctomb ในการดูเนื้อหา:

เปลือก> cat ~ / .mysql_history | python2.7 -c "import sys; print (''. join ([l.decode ('unicode-escape') สำหรับ l ใน sys.stdin]))"

ที่มา: ตรวจสอบประวัติการสืบค้น MySQL จากบรรทัดคำสั่ง


-1

คุณสามารถดูแคชแบบสอบถาม: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htmแต่อาจไม่ให้คุณเข้าถึงแบบสอบถามจริงและจะเป็นอย่างมาก ตีแล้วพลาดถ้ามันได้ผล (ตั้งใจเล่นสำนวนอย่างละเอียด)

แต่ MySQL Query Browser มีแนวโน้มมากที่จะรักษารายการแบบสอบถามของตัวเองที่รันอยู่นอกเอ็นจิ้น MySQL คุณจะต้องทำเช่นเดียวกันในแอปของคุณ

แก้ไข: ดูความคิดเห็นของ dan m ที่นำไปสู่สิ่งนี้: จะแสดงคำค้นหาล่าสุดที่ดำเนินการบน MySQL ได้อย่างไร? ดูเสียง

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