जवाबों:
जैसा कि चीलियन ने उल्लेख किया है, ऐसे कई तरीके हैं जो आपके mysql को स्थापित कर सकते हैं। जिनमें से प्रत्येक आपके डेटा को अलग-अलग स्थानों में डीआईआर और / या लॉग में रखेगा। निम्नलिखित कमांड आपको (और हमें) एक अच्छा संकेत देगा कि कहाँ देखना है।
ps auxww|grep [m]ysqld
# Putting brackets around the first char is a `grep`+`ps` trick
# to keep it from matching its own process.
# Note: For zsh compatibility put quotes around the grep regex
क्या आप कृपया उस आदेश का परिणाम यहाँ पोस्ट कर सकते हैं? मेरा ऐसा दिखता है:
_mysql 101 0.0 0.3 112104 13268 ?? S 12:30AM 0:13.20 /opt/local/libexec/mysqld --basedir=/opt/local --datadir=/opt/local/var/db/mysql --user=mysql --pid-file=/opt/local/var/db/mysql/rbronosky-mbp.pid
root 76 0.0 0.0 600172 688 ?? S 12:30AM 0:00.02 /bin/sh /opt/local/lib/mysql/bin/mysqld_safe --datadir=/opt/local/var/db/mysql --pid-file=/opt/local/var/db/mysql/rbronosky-mbp.pid
उस से आप देख सकते हैं कि मेरा डेटाडियर है /opt/local/var/db/mysql
(क्योंकि मैंने मैकपोर्ट्स के माध्यम से स्थापित किया है)। आइए इस पाठ को थोड़ा और आगे ले जाएं ...
पहली पंक्ति से आप देख सकते हैं कि मेरा डेमॉन है /opt/local/libexec/mysqld
। mysqld
साथ बुलाया जा सकता है --verbose --help
सभी कमांड लाइन विकल्पों की सूची पाने के लिए (और यहां महत्वपूर्ण / महत्वपूर्ण हिस्सा है!) मूल्यों है कि यदि आप mysqld शुरू करने थे बजाय सिर्फ मदद उत्पादन जाँच इस्तेमाल किया जाएगा, जिसके बाद। मान आपके संकलित समय कॉन्फ़िगरेशन, my.cnf
फ़ाइल और किसी भी कमांड लाइन विकल्प का परिणाम हैं। मैं इस सुविधा का उपयोग यह पता लगाने के लिए कर सकता हूं कि मेरी लॉग फाइलें कहां हैं, जैसे:
/opt/local/libexec/mysqld --verbose --help|grep '^log'
मेरा ऐसा दिखता है:
log /tmp/mysql.log
log-bin /tmp/mysql-bin
log-bin-index (No default value)
log-bin-trust-function-creators FALSE
log-bin-trust-routine-creators FALSE
log-error /tmp/mysql.error.log
log-isam myisam.log
log-queries-not-using-indexes FALSE
log-short-format FALSE
log-slave-updates FALSE
log-slow-admin-statements FALSE
log-slow-queries (No default value)
log-tc tc.log
log-tc-size 24576
log-update (No default value)
log-warnings 1
भौचक्का होना! दुनिया की सभी सलाह मेरी मदद करने वाली नहीं थीं क्योंकि मेरी लॉग फ़ाइल को पूरी तरह से गैर-मानक स्थान पर रखा गया है! मैं अपने पास रखता हूं /tmp/
क्योंकि मेरे लैपटॉप पर, मैं रिबूट पर अपने सभी लॉग को ढीला करने के लिए परवाह नहीं करता (वास्तव में मुझे पसंद है)।
चलो यह सब एक साथ रखा और आप एक oneliner बनाते हैं:
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
निष्पादित करें कि एक कमांड और आपको mysql के आपके रनिंग इंस्टेंस के सभी लॉग्स की एक सूची मिल जाएगी।
का आनंद लें!
यह बैश-फू सभी चीजों के लिए मेरी प्रतिबद्धता से मुक्त करने के लिए लाया है ओपन सोर्स।
MySQL / MariaDB लॉग के 3 प्रकार हैं:
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
डिफ़ॉल्ट रूप से लॉग आपके डेटा में संग्रहीत किए जाते हैं, इसलिए इस शेल कमांड द्वारा स्थान की जांच करें:
mysql -se "SELECT @@datadir"
अपनी त्रुटि लॉग देखने के लिए, आप चला सकते हैं:
sudo tail -f $(mysql -Nse "SELECT @@log_error")
यदि आपने सामान्य लॉग सक्षम किया है, तो इसे देखने के लिए, दौड़ें:
sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")
इसे खोजने में थोड़ा समय लगा ... इस स्थान को आज़माएँ: '
sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err
/usr/local/var/mysql/<USERNAME>.local.err
डिफ़ॉल्ट रूप से, सभी लॉग फ़ाइलें mysqld डेटा निर्देशिका में बनाई जाती हैं।
स्रोत: MySQL प्रलेखन
आप mysqlbinlog
बाइनरी लॉग फ़ाइलों को / usr / स्थानीय / mysql / data / (मेरी स्थापना में सभी बाइनरी नहीं थे) को पढ़ने के लिए उपयोग कर सकते हैं । कुछ त्रुटियों को बस स्टैडर के लिए निर्देशित किया जाता है ताकि आप भी जांचना चाहें /var/log/system.log
।
उस लॉग को रखने वाला फ़ोल्डर बिना उपयोग किए आपके लिए सुलभ नहीं हो सकता है sudo
:
sudo ls -l "/usr/local/mysql-5.0.51a-osx10.5-x86"
[..]
drwxr-x--- 4 _mysql wheel 136 Jul 10 23:06 data
यदि आप एक बड़ी लॉग फ़ाइल खोजने के लिए होते हैं और जब आप टाइम मशीन का उपयोग कर रहे हैं, तो आप पढ़ना चाह सकते हैं कि टाइम मशीन क्या कर रही है? सर्वर दोष पर।
डिफ़ॉल्ट रूप से, सभी लॉग फ़ाइलें mysqld डेटा निर्देशिका में बनाई जाती हैं। दुर्भाग्य से, कई लोग अपने लॉग फाइल (और प्रोग्राम) को अपने विशिष्ट स्थानों पर नहीं रखते हैं। मैं उनमें से एक हूं!
जब तक मैंने MySQL के लिए Navicat की कोशिश नहीं की, मैं MySQL के साथ खुद इस दिनचर्या से गुज़रा । बाद में मैंने नवीक प्रीमियम में अपग्रेड किया । दोनों में एक निगरानी उपकरण होता है जिसमें एक व्यापक सूची में सभी सर्वर चर के साथ एक टैब होता है। यहाँ log_error सर्वर चर के साथ एक स्क्रीनशॉट है:
log_error सर्वर चर Navicat सर्वर मॉनिटरिंग टूल में
आप सूची में चर भी वहीं सेट कर सकते हैं।
चीयर्स!
/Library/Logs/MySQL.log
mysqladmin variables
अब सीधे इस्तेमाल के बजाय वर्तमान मूल्य प्राप्त करने के लिए पसंदीदा कमांड हैmysqld