क्वेरी के इतिहास को प्रदर्शित करने के लिए SQL कमांड


112

मैं अपने MYSQL क्वेरी ब्राउज़र में अपने निष्पादित SQL कमांड इतिहास को प्रदर्शित करना चाहूंगा। इतिहास प्रदर्शित करने के लिए sql कथन क्या है?


6
इस सवाल का एक रिपॉजिट जैसा लगता है: stackoverflow.com/questions/650238/…
lazarus

जवाबों:


161

प्रयत्न

 cat ~/.mysql_history

यह आपको सिस्टम पर चलने वाली सभी mysql कमांड दिखाएगा


2
सभी नहीं , दमन कुछ के लिए होता है जिसमें "पासवर्ड" जैसे तार होते हैं।
मैकेंज़्म

1
यह आम तौर पर आपके खुले MySQL CLI के साथ अप-टू-डेट नहीं होता है इसलिए आपको exitMySQL करने की संभावना है तो फ़ाइल पढ़ें।
जोएल मेलन

1
यह केवल उस उपयोगकर्ता द्वारा निष्पादित कमांड को दिखाता है जो लॉग इन किया गया है।
क्रिस्टिया


यह संभावना है कि अन्य आदेशों को दबा दिया गया है या वे अनियंत्रित हैं? और, क्या लॉग वास्तविक समय में इसे अपडेट करता है?
Drubio

32

MySQL> 5.1.11 या मारियाडीबी के लिए

  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";फिर से निष्पादित करते हैं (या हो सकता है कि यदि आपने कॉन्फ़िगरेशन को संपादित किया है तो सत्र को पुनरारंभ करें)।
स्किप्पी ले ग्रांड गौरौ

21

(लिनक्स) अपना टर्मिनल खोलें ctrl+alt+t कमांड चलाएं

 cat ~/.mysql_history

आप सभी पिछले mysql क्वेरी इतिहास का आनंद लेंगे :)


18

आप इसे वहां खोजेंगे

~/.mysql_history

आप इसे इस तरह से पढ़ने योग्य (बच निकलने के बिना) बना देंगे:

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

2

देखो पर ~/.myslgui/query-browser/history.xml यहाँ आप के साथ किए गए पिछले प्रश्नों पा सकते हैं mysql_query_browser (कुछ दिन पुरानी)


0

आप इतिहास को ~ / .mysql_history से देख सकते हैं। हालाँकि फ़ाइल की सामग्री को wctomb द्वारा एन्कोड किया गया है। सामग्री देखने के लिए:

शेल> बिल्ली ~ / .mysql_history | python2.7 -c "sys आयात करें; प्रिंट करें (''। join ([l.decode ('यूनिकोड-एस्केप') l के लिए sys.stdin] में)")

स्रोत: कमांड लाइन से MySQL क्वेरी इतिहास की जाँच करें


-1

आप क्वेरी कैश पर देख सकते हैं: http://www.databasejournal.com/features/mysql/article.php/3110171/MySQLs-Query-Cache.htm, लेकिन यह आपको वास्तविक प्रश्नों तक पहुंच नहीं दे सकता है और बहुत ही होगा हिट-एंड-मिस अगर यह काम किया (सूक्ष्म वाक्य का इरादा)

लेकिन MySQL क्वेरी ब्राउज़र बहुत संभावना है कि यह MySQL इंजन के बाहर चलने वाले प्रश्नों की अपनी सूची बनाए रखता है। आपको अपने ऐप में भी ऐसा ही करना होगा।

संपादित करें: dan m की टिप्पणी को आगे बढ़ाते हुए देखें: MySQL पर निष्पादित अंतिम प्रश्नों को कैसे दिखाएं? आवाज लग रही है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.