मैं लाइव MySQL प्रश्नों को कैसे देख सकता हूं?


492

जैसे ही वे होते हैं, मैं अपने लिनक्स सर्वर पर MySQL के प्रश्नों का पता कैसे लगा सकता हूँ?

उदाहरण के लिए, मैं किसी प्रकार के श्रोता को सेट करना पसंद करूंगा, फिर एक वेब पेज का अनुरोध करूंगा और इंजन द्वारा निष्पादित सभी क्वेरी को देख सकता हूं, या केवल उत्पादन सर्वर पर चलाए जा रहे सभी प्रश्नों को देख सकता हूं। मैं यह कैसे कर सकता हूँ?


एक समस्या कितनी बुरी है, इस पर निर्भर करते हुए, मैं MySql प्रॉक्सी की कोशिश करने की अत्यधिक सलाह दूंगा। B / c इसे ऐप सर्वर पर रखा जा सकता है, a) यह स्केलेबल है, b) db पर सभी ट्रैफ़िक को प्रभावित नहीं करता है। यह 'अल्फा' में है, लेकिन लंबे समय से है। dev.mysql.com/downloads/mysql-proxy
Jeff

15
यह क्यों बंद किया गया था?! यह पूछ रहा है कि एक्स कैसे करना है , सिफारिश के लिए नहीं। लगभग 200 लोगों ने इस प्रश्न को उपयोगी पाया। मॉड को शांत करने की आवश्यकता है।
सेरिन

1
मैंने टूल के किसी भी संदर्भ को छोड़ने के लिए इस प्रश्न को पुन: प्रकाशित किया है। मुझे लगता है कि यह सवाल पूरी तरह से विषय पर है, जैसा कि "क्या हम उन प्रश्नों को चला रहे हैं जो हमें होना चाहिए?" डेटाबेस से संबंधित समस्या को डीबग करने में एक महान पहला कदम है।
जेफरी बोसबोम

1
PDO का उपयोग करते समय @MaasSql mysql प्रॉक्सी php डेवलपर्स के लिए उपयोगी नहीं है क्योंकि क्वेरी और मान केवल सर्वर पर बंधे होते हैं।
आनंद

जवाबों:


298

आप MySQL कमांड SHOW FULL PROCESSLIST;को यह देखने के लिए चला सकते हैं कि किसी भी समय प्रश्नों को क्या संसाधित किया जा रहा है, लेकिन यह संभवत: वह हासिल नहीं करेगा जो आप उम्मीद कर रहे हैं।

सर्वर का उपयोग करके हर एप्लिकेशन को संशोधित किए बिना एक इतिहास प्राप्त करने का सबसे अच्छा तरीका संभवतः ट्रिगर्स के माध्यम से है। आप ट्रिगर सेट कर सकते हैं ताकि प्रत्येक क्वेरी किसी प्रकार की इतिहास तालिका में डाली जा रही क्वेरी में परिणाम दें, और फिर इस जानकारी तक पहुंचने के लिए एक अलग पृष्ठ बनाएं।

ध्यान रखें कि यह संभवतः सर्वर पर सब कुछ धीमा कर देगा, हालांकि, INSERTहर एक क्वेरी के शीर्ष पर एक अतिरिक्त जोड़ने के साथ ।


संपादित करें: एक अन्य विकल्प जनरल क्वेरी लॉग है , लेकिन इसे एक फ्लैट फाइल पर लिखे जाने से विशेष रूप से वास्तविक समय में प्रदर्शित करने के लचीलेपन के लिए बहुत सारी संभावनाएं दूर हो जाएंगी। यदि आप अभी एक सरल, आसानी से लागू होने वाला तरीका चाहते हैं, तो यह देखने के लिए कि क्या चल रहा है, GQL को सक्षम करने और फिर tail -fलॉगफ़ाइल पर चलने का उपयोग करने से चाल चलेगी।


5
यह मूर्खतापूर्ण लग सकता है लेकिन मैं GQL को कैसे सक्षम कर सकता हूं? मैंने log_output = फ़ाइल, general_log = 1, और general_log_file = / pathtofile को जोड़ा है, और लॉग फ़ाइल को पूंछा, साइट पर हिट किया और कुछ भी नहीं मिला। मैं क्या गलत कर रहा हूं?
बारफून

मैं कुछ भी सुनिश्चित नहीं कर सकता, लेकिन सुनिश्चित करें कि आपने सर्वर को पुनरारंभ किया है, और यह भी कि आपके द्वारा चुनी गई फ़ाइल वह है जिसे mysql में लिखना होगा।
चाड बर्च

7
मैंने यह पता लगा लिया है - मेरे mynnn में सभी आवश्यक था log / / path / to / log तब मैंने बस उस पर पूंछ किया था और यह सभी प्रश्नों को प्रदर्शित करता है।
बारफून

1
जहां तक ​​मैं बता सकता हूं, एक SELECT स्टेटमेंट पर कुछ भी ट्रिगर करने का कोई तरीका नहीं है । ट्रिगर केवल INSERT, UPDATE, DELETE पर लागू होते हैं ... या क्या मुझे गलत जानकारी दी गई है?
गाबा

1
मैं पहले भी इसी मौके पर था। वर्तमान में, मैं Monyog का उपयोग कर रहा हूं जो यह सब बहुत कम ओवरहेड के साथ करता है, इसलिए कुछ भी धीमा नहीं होता है।

518

आप वास्तव में आसानी से लॉग फ़ाइल में हर क्वेरी को लॉग कर सकते हैं:

mysql> SHOW VARIABLES LIKE "general_log%";

+------------------+----------------------------+
| Variable_name    | Value                      |
+------------------+----------------------------+
| general_log      | OFF                        |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+

mysql> SET GLOBAL general_log = 'ON';

अपनी क्वेरीज़ (किसी भी db पर) करें। ग्रीप या अन्यथा जांच/var/run/mysqld/mysqld.log

फिर मत भूलना

mysql> SET GLOBAL general_log = 'OFF';

या प्रदर्शन गिर जाएगा और आपकी डिस्क भर जाएगी!


37
अच्छा उत्तर! आप tail -f -n300 /var/run/mysqld/mysqld.logअपनी लॉग फ़ाइल का लाइव ट्रैक रखने के लिए उपयोग कर सकते हैं
क्लेडियो ब्रेडफेल्ड

4
ध्यान दें कि इन चरों के लिए MySQL 5.1.12 या उच्चतर की आवश्यकता है। इससे पहले, आपको इन सेटिंग्स को बदलने के लिए MySQL को पुनरारंभ करना होगा।
jlh

क्या लॉग में लिखे गए पैरामीटर वाले चर प्राप्त करने का कोई तरीका है? मैं देख SELECT name FROM person where id=?रहा हूं लेकिन मुझे नहीं पता कि क्या idहै।
जेफ

SHOW VARIABLESमेरे लिए काम नहीं किया। हालांकि SELECT @@GLOBAL.general_log_file;ठीक काम करता है। (मारियाडीबी 10.1.9)
दार्इ पिरोझकोव

1
महत्वपूर्ण - आपको लॉगिंग आउटपुट की जांच करनी चाहिए SHOW VARIABLES LIKE "log_output%"। यदि इसे सेट किया जाता है table, तो लॉग को डेटाबेस में ही सहेजा जाएगा, mysql.general_logफाइल सिस्टम में नहीं। आप को बदल सकते हैं file के साथSET GLOBAL log_output = 'file';
आर्निस Juraga

199

हालांकि एक उत्तर पहले ही स्वीकार कर लिया गया है, मैं प्रस्तुत करना चाहूंगा कि सबसे सरल विकल्प क्या हो सकता है:

$ mysqladmin -u bob -p -i 1 processlist

यह आपकी स्क्रीन पर वर्तमान प्रश्नों को हर सेकंड प्रिंट करेगा।

  • -u Mysql उपयोगकर्ता जिसे आप कमांड के रूप में निष्पादित करना चाहते हैं
  • -p अपने पासवर्ड के लिए संकेत दें (ताकि आपको इसे किसी फ़ाइल में सहेजना न हो या कमांड आपके कमांड इतिहास में दिखाई दे)
  • i सेकंड में अंतराल।
  • --verboseप्रत्येक प्रक्रिया के लिए संपूर्ण क्वेरी प्रदर्शित करते हुए, पूरी प्रक्रिया सूची दिखाने के लिए ध्वज का उपयोग करें । (धन्यवाद, नमत )

एक संभावित नकारात्मक पक्ष है: यदि वे आपके द्वारा सेट किए गए अंतराल के बीच चलते हैं, तो तेज क्वेरी दिखाई नहीं दे सकती हैं। IE: मेरा अंतराल एक सेकंड में सेट किया गया है और अगर कोई क्वेरी है जिसे .02चलाने में सेकंड लगता है और अंतराल के बीच भाग जाता है, तो आप इसे नहीं देखेंगे।

इस विकल्प का उपयोग तब अधिमानतः करें जब आप जल्दी से चल रहे प्रश्नों पर जाँच करना चाहते हैं बिना श्रोता या कुछ और सेट किए बिना।


11
यह सबसे अच्छा समाधान है!
user1398287

3
मेरी राय में यह बेहतर समाधान है क्योंकि हर बार कमांड भेजने के लिए एक नए mysql कनेक्शन का उपयोग न करें, इसके बजाय एक mysql कनेक्शन खोलें और शो प्रक्रिया सूची भेजने के लिए इसका उपयोग करें;
जोस मोब

@JoseNobile अगर आप अपने एडॉप्टर में mysql कनेक्शन को खुला रखते हैं, तो यह वास्तव में मायने नहीं रखता। मेरा समाधान ओपी के लिए बिल्कुल सही नहीं है क्योंकि मेरा समाधान एक एडाप्टर में उपयोग के लिए तैयार नहीं है। हालांकि, यह त्वरित और आसान है।
हाफपस्टफ़ोर.मं।

7
आप --verboseपूर्ण क्वेरी देखने के लिए जोड़ सकते हैं
nmat

2
यह वह उत्तर है जिसकी मुझे तलाश थी। इसे उत्तर के रूप में स्वीकार किया जाना चाहिए। इसे लागू करने का सबसे आसान जवाब भी है।
चाड

51

MySQL क्वेरीज़ को देखने के लिए यह सुविधाजनक SQL क्वेरी चलाएँ। यह आपको किसी भी वातावरण से चलाया जा सकता है, जब भी आप चाहें, बिना किसी कोड परिवर्तन या ओवरहेड के। इसके लिए कुछ MySQL परमिशन कॉन्फ़िगरेशन की आवश्यकता हो सकती है, लेकिन मेरे लिए यह बिना किसी विशेष सेटअप के चलता है।

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND != 'Sleep';

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

आप इसे केवल किसी SQL क्वेरी के लिए और अधिक विशिष्ट बनाने के लिए शर्तें भी जोड़ सकते हैं।

उदाहरण 5 सेकंड या अधिक के लिए चल रहे सभी प्रश्नों को दिखाता है:

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND != 'Sleep' AND TIME >= 5;

उदाहरण के लिए सभी अद्यतन चलाएं:

SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST WHERE COMMAND != 'Sleep' AND INFO LIKE '%UPDATE %';

पूर्ण विवरण के लिए देखें: http://dev.mysql.com/doc/refman/5.1/en/processlist-table.html


17

मैं एक विशेष स्थिति में हूं जहां मेरे पास लॉगिंग चालू करने की अनुमति नहीं है, और यदि वे चालू थे तो लॉग देखने की अनुमति नहीं होगी। मैं एक ट्रिगर नहीं जोड़ सका, लेकिन मेरे पास शो प्रक्रिया सूची को कॉल करने की अनुमति थी। इसलिए, मैंने इसे सबसे अच्छा प्रयास दिया और इसके साथ आया:

"शोज़क्प्रोसेसलिस्ट" नामक एक बैश स्क्रिप्ट बनाएं:

#!/bin/bash

while [ 1 -le 1 ]
do
         mysql --port=**** --protocol=tcp --password=**** --user=**** --host=**** -e "show processlist\G" | grep Info | grep -v processlist | grep -v "Info: NULL";
done

स्क्रिप्ट निष्पादित करें:

./showsqlprocesslist > showsqlprocesslist.out &

उत्पादन पूंछ:

tail -f showsqlprocesslist.out

बिंगो बांगो यद्यपि यह थ्रॉटल नहीं है, फिर भी मैंने इसे चलाने वाले बॉक्स पर केवल 2-4% सीपीयू लिया। मुझे आशा है कि शायद यह किसी की मदद करता है।


हा! स्वादिष्ट। इसे प्यार करना।
डार्थ एलीगियस

यह बहुत अधिक उत्पादन से बचने के लिए कुछ देरी की आवश्यकता है। कृपया मेरा संपादन देखें।
स्लीक्स

@ लूप में नींद डालने के सुझाव के लिए धन्यवाद। हालाँकि, यदि आप अल्पकालिक प्रश्नों की तलाश कर रहे हैं, जो नींद से कम समय के लिए रहते हैं, तो आप संभावित रूप से याद करेंगे कि आप क्या खोज रहे हैं। यदि आप वास्तव में सिर्फ एक स्नैपशॉट की तलाश में हैं तो इसे लूप में नहीं चलाया जाना चाहिए। यह भी ध्यान दिया जाना चाहिए कि यह अभी भी संभावित रूप से बहुत कम जीवित प्रश्नों को याद कर सकता है।
माइकल क्रुकलिस

17

strace

लाइव MySQL / MariaDB प्रश्नों को देखने का सबसे तेज़ तरीका डीबगर का उपयोग करना है। straceउदाहरण के लिए, लिनक्स पर आप उपयोग कर सकते हैं :

sudo strace -e trace=read,write -s 2000 -fp $(pgrep -nf mysql) 2>&1

चूंकि बहुत सारे बच गए पात्र हैं, आप निम्न कमांड में ऊपर स्ट्रीप के आउटपुट को पाइपिंग (बस |इन दो वन-लाइनर्स के बीच जोड़ सकते हैं) को प्रारूपित कर सकते हैं :

grep --line-buffered -o '".\+[^"]"' | grep --line-buffered -o '[^"]*[^"]' | while read -r line; do printf "%b" $line; done | tr "\r\n" "\275\276" | tr -d "[:cntrl:]" | tr "\275\276" "\r\n"

तो आपको कॉन्फ़िगरेशन फ़ाइलों को छूने के बिना, बिना समय के साथ काफी साफ एसक्यूएल प्रश्नों को देखना चाहिए।

जाहिर है कि यह लॉग को सक्षम करने के मानक तरीके को प्रतिस्थापित नहीं करेगा, जो नीचे वर्णित है (जिसमें SQL सर्वर को फिर से लोड करना शामिल है)।

dtrace

सर्वर को स्पर्श किए बिना लाइव MySQL प्रश्नों को देखने के लिए MySQL जांच का उपयोग करें। उदाहरण लिपि:

#!/usr/sbin/dtrace -q
pid$target::*mysql_parse*:entry /* This probe is fired when the execution enters mysql_parse */
{
     printf("Query: %s\n", copyinstr(arg1));
}

फ़ाइल (जैसे watch.d) के लिए स्क्रिप्ट के ऊपर सहेजें , और चलाएँ:

pfexec dtrace -s watch.d -p $(pgrep -x mysqld)

और जानें: MySQL को शुरू करने के साथ आरंभ करना

गिब्स MySQL स्पाईग्लास

इस जवाब को देखें

लॉग्स

विकास के प्रस्तावों के लिए उपयोगी कदम यहां दिए गए हैं।

इन पंक्तियों को अपने ~/.my.cnfया वैश्विक में जोड़ें my.cnf:

[mysqld]
general_log=1
general_log_file=/tmp/mysqld.log

पथ: /var/log/mysqld.logया /usr/local/var/log/mysqld.logआपकी फ़ाइल अनुमतियों के आधार पर भी काम कर सकते हैं।

फिर अपने MySQL / MariaDB को पुनः आरंभ करें ( sudoयदि आवश्यक हो तो उपसर्ग करें ):

killall -HUP mysqld

फिर अपने लॉग की जाँच करें:

tail -f /tmp/mysqld.log

समाप्त होने के बाद, इसमें बदलाव general_logकरें 0(ताकि आप इसे भविष्य में उपयोग कर सकें), फिर फ़ाइल को हटा दें और SQL सर्वर को फिर से शुरू करें killall -HUP mysqld:।


1
यदि आप general_logMySQL क्वेरी से सेट करते हैं तो सर्वर को मारने की आवश्यकता नहीं है । यह उस फ़ाइल को लिखना शुरू कर देगा जो general_log_fileइंगित कर रहा है।
रॉबर्ट ब्रिसिटा

15

यह लिनक्स उबंटू मशीन पर सबसे आसान सेटअप है जो मैं भर में आया हूं। सभी प्रश्नों को लाइव देखने के लिए पागल।

अपने MySQL कॉन्फ़िगरेशन फ़ाइल को ढूंढें और खोलें, आमतौर पर Ubuntu पर /etc/mysql/my.cnf। "लॉगिंग और प्रतिकृति" कहने वाले अनुभाग को देखें

#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.

log = /var/log/mysql/mysql.log

लॉगिंग चालू करने के लिए बस "लॉग" चर को अनकम्प्लीट करें। इस आदेश के साथ MySQL को पुनरारंभ करें:

sudo /etc/init.d/mysql restart

अब हम अंदर आते ही प्रश्नों की निगरानी शुरू करने के लिए तैयार हैं। नया टर्मिनल खोलें और यदि आवश्यक हो तो पथ को समायोजित करते हुए लॉग फ़ाइल को स्क्रॉल करने के लिए इस कमांड को चलाएं।

tail -f /var/log/mysql/mysql.log

अब अपना एप्लिकेशन रन करें। आप देखेंगे कि डेटाबेस क्वेरीज़ आपके टर्मिनल विंडो में उड़ने लगती हैं। (सुनिश्चित करें कि आपके पास टर्मिनल पर स्क्रॉलिंग और इतिहास सक्षम है)

से http://www.howtogeek.com/howto/database/monitor-all-sql-queries-in-mysql/


13

कमांड लाइन से आप चला सकते हैं:

watch --interval=[your-interval-in-seconds] "mysqladmin -u root -p[your-root-pw] processlist | grep [your-db-name]"

अपने मूल्यों के साथ [x] मान बदलें।

या इससे भी बेहतर:

 mysqladmin -u root -p -i 1 processlist;

1
यह वास्तव में एक बहुत अच्छा स्निपेट है जो काम आ सकता है .. धन्यवाद!
एमजीपी

ठीक वही जो मेरे द्वारा खोजा जा रहा था!! घड़ी को अलग से स्थापित करने की आवश्यकता है।
तिलो

12

Mtop की जाँच करें ।


1
हां, लेकिन सौभाग्य से इसे डेबियन या उबंटू पर स्थापित करना है: Bugs.launchpad.net/ubuntu/+source/mtop/+bug/77980
mlissner

प्रबंधित करने के लिए यह डेबियन पर चल रहा है, लेकिन इसके थोड़े बेकार होने के कारण यह बहुत सारे प्रश्नों को याद करता है। मैं क्वेरी काउंटर को लगातार देख सकता हूं लेकिन यह शायद ही कभी कोई प्रश्न प्रदर्शित करता है। ऐसा लगता है कि यह केवल उन प्रश्नों को प्रदर्शित करता है जो लगभग 1 सेकंड से अधिक समय लेते हैं।
कोबरा_फास्ट

@Cobra_Fast ने mtop पर स्पष्ट रूप से कहा है Sourceforge पेज: mtop (MySQL top) monitors a MySQL server showing the queries which are taking the most amount of time to complete. mtop.sourceforge.net यह कभी-कभी काफी उपयोगी होता है।
इयान लुईस

7

मैं ऐसा ही करना चाह रहा हूं, और विभिन्न पदों से एक साथ समाधान निकाला है, साथ ही लाइव क्वेरी टेक्स्ट को आउटपुट करने के लिए एक छोटा कंसोल ऐप बनाया है जैसा कि लॉग फ़ाइल में लिखा गया है। यह मेरे मामले में महत्वपूर्ण था क्योंकि मैं MySQL के साथ Entity फ्रेमवर्क का उपयोग कर रहा हूं और मुझे उत्पन्न SQL का निरीक्षण करने में सक्षम होने की आवश्यकता है।

लॉग फ़ाइल बनाने के लिए कदम (अन्य पोस्ट के कुछ दोहराव, सादगी के लिए सभी यहाँ):

  1. यहां स्थित फ़ाइल को संपादित करें:

    C:\Program Files (x86)\MySQL\MySQL Server 5.5\my.ini

    फ़ाइल के निचले भाग में "log = development.log" जोड़ें। (इस फ़ाइल को सहेजने के लिए मुझे एक व्यवस्थापक के रूप में अपना पाठ संपादक चलाने की आवश्यकता है)।

  2. कमांड लाइन खोलने, पासवर्ड दर्ज करने के लिए MySql कार्यक्षेत्र का उपयोग करें।

    सामान्य लॉगिंग चालू करने के लिए निम्नलिखित को चलाएँ जो सभी प्रश्नों को रिकॉर्ड करेगा:

    SET GLOBAL general_log = 'ON';
    
    To turn off:
    
    SET GLOBAL general_log = 'OFF';

    यह निम्न क्वेरीज़ को निम्न स्थान पर पाठ फ़ाइल में लिखे जाने का कारण बनेगा।

    C:\ProgramData\MySQL\MySQL Server 5.5\data\development.log
  3. एक कंसोल ऐप बनाएं / चलाएं जो वास्तविक समय में लॉग जानकारी को आउटपुट करेगा:

    स्रोत यहाँ डाउनलोड करने के लिए उपलब्ध है

    स्रोत:

    using System;
    using System.Configuration;
    using System.IO;
    using System.Threading;
    
    namespace LiveLogs.ConsoleApp
    {
      class Program
      {
        static void Main(string[] args)
        {
            // Console sizing can cause exceptions if you are using a 
            // small monitor. Change as required.
    
            Console.SetWindowSize(152, 58);
            Console.BufferHeight = 1500;
    
            string filePath = ConfigurationManager.AppSettings["MonitoredTextFilePath"];
    
            Console.Title = string.Format("Live Logs {0}", filePath);
    
            var fileStream = new FileStream(filePath, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
    
            // Move to the end of the stream so we do not read in existing
            // log text, only watch for new text.
    
            fileStream.Position = fileStream.Length;
    
            StreamReader streamReader;
    
            // Commented lines are for duplicating the log output as it's written to 
            // allow verification via a diff that the contents are the same and all 
            // is being output.
    
            // var fsWrite = new FileStream(@"C:\DuplicateFile.txt", FileMode.Create);
            // var sw = new StreamWriter(fsWrite);
    
            int rowNum = 0;
    
            while (true)
            {
                streamReader = new StreamReader(fileStream);
    
                string line;
                string rowStr;
    
                while (streamReader.Peek() != -1)
                {
                    rowNum++;
    
                    line = streamReader.ReadLine();
                    rowStr = rowNum.ToString();
    
                    string output = String.Format("{0} {1}:\t{2}", rowStr.PadLeft(6, '0'), DateTime.Now.ToLongTimeString(), line);
    
                    Console.WriteLine(output);
    
                    // sw.WriteLine(output);
                }
    
                // sw.Flush();
    
                Thread.Sleep(500);
            }
        }
      }
    }

1
यह वास्तविक शांत लग रहा है और मैं निश्चित रूप से इस पर एक नज़र डालने जा रहा हूं, इसे ओएसएस परियोजना के रूप में लेने और एक कुशल उपकरण बनाने के लिए महान हो!
रिप्पो

मुझे लगता है कि यह एक अच्छा विचार है। मैंने google कोड पर SVN रेपो डाल दिया है। संभवतः अब तक का सबसे छोटा ओएस प्रोजेक्ट, लेकिन यह अब तक बहुत उपयोगी रहा है। मैं शायद इसे बढ़ाऊंगा, यह देखने के लिए इच्छुक हूं कि क्या कोई और इसे आगे ले जाता है। code.google.com/p/livelogs
gb2d

ओपी को अपनी लिनक्स मशीन पर काम करने की जरूरत है। ऐसा लगता है कि आपका उत्तर विंडोज मशीन के लिए है। यद्यपि यह उत्तर रचनात्मकता को दर्शाता है, लेकिन यह दूसरों के लिए उपयोगी नहीं हो सकता है।
halfpastfour.am

1

सामान्य लॉगिंग को सक्षम करने का वर्णन करने वाले पिछले उत्तरों के अलावा, मुझे अपने वेनिला MySql 5.6 इंस्टालेशन में एक अतिरिक्त चर को संशोधित करना था, इससे पहले कि कोई SQL लॉग में लिखा जाए:

SET GLOBAL log_output = 'FILE';

डिफ़ॉल्ट सेटिंग 'NONE' थी।


0

गिब्स MySQL स्पाईग्लास

AgilData ने हाल ही में गिब्स MySQL स्केलेबिलिटी एडवाइजर (एक नि: शुल्क स्वयं सेवा उपकरण) लॉन्च किया है जो उपयोगकर्ताओं को गिब्स पर अपलोड किए जाने वाले प्रश्नों की एक लाइव स्ट्रीम पर कब्जा करने की अनुमति देता है। स्पाईग्लास (जो ओपन सोर्स है) आपके MySQL सर्वर और क्लाइंट एप्लिकेशन के बीच इंटरैक्शन को देखेगा। MySQL डेटाबेस सर्वर का कोई पुन: संयोजन या पुनः आरंभ करने की आवश्यकता नहीं है (या तो क्लाइंट या ऐप)।

GitHub: AgilData / gibbs-mysql-spyglass

और जानें: पैकेट पर जंग के साथ MySQL कैप्चर करना

कमांड स्थापित करें:

curl -s https://raw.githubusercontent.com/AgilData/gibbs-mysql-spyglass/master/install.sh | bash

2
स्पाईग्लास को एक सर्वर से एपीआई कुंजी की आवश्यकता होती है जो कि डाउन है, और आखिरी कमिट 3 साल पहले था। सुनिश्चित नहीं है कि यह उत्पाद अभी भी समर्थित / कार्य कर रहा है।
दान तेनबाम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.