सवाल ओएस एक्स पर मेरा mysql लॉग कहां है?


मैंने चेक / var / log और / usr / local / mysql चेक किया है और मुझे लॉग नहीं मिल रहा है। मैं php फ़ंक्शन के साथ डेटाबेस कनेक्शन स्थापित करने में त्रुटि की समस्या निवारण करने का प्रयास कर रहा हूं।


66
2017-07-18 15:58


मूल




जवाब:


जैसा कि चेल्यायन ने उल्लेख किया है, ऐसे कई तरीके हैं जिनसे आपका 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/mysqldmysqld के साथ बुलाया जा सकता है --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/ क्योंकि मेरे लैपटॉप पर, मुझे रीबूट पर अपने सभी लॉग को खोने के लिए परवाह नहीं है (वास्तव में मैं पसंद करता हूं)।

आइए इसे सब एक साथ रख दें और आपको एक ऑनलाइनर बनाएं:

$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'

उस आदेश को निष्पादित करें और आपको mysql के अपने चल रहे उदाहरण के लिए सभी लॉग की एक सूची प्राप्त होगी।

का आनंद लें!

इस बैश-फू ने सभी चीजों को ओपन सोर्स के प्रति अपनी प्रतिबद्धता से मुक्त कर दिया।


85
2017-07-20 17:06



mysqladmin variables अब सीधे उपयोग करने के बजाय वर्तमान मूल्य प्राप्त करने के लिए पसंदीदा आदेश है mysqld - John Cummings
@ जॉन कमिंग्स, स्रोत? - Pacerier
आज मुझे कोई टिप्पणी नहीं मिली है। मैं अपने सभी उत्तरों को बनाए रखता हूं। यहां तक ​​कि जो लोग 10 साल के हैं। आप नीचे मतदान करके किसी की भी मदद नहीं कर रहे हैं। एक टिप्पणी छोड़ें! - Bruno Bronosky
@ जेएम 3 देखभाल विस्तृत करने के लिए? अब मैकोज़ तक पहुंच नहीं है। - Bruno Bronosky


इस जानकारी को खोजने का एक और तरीका उपयोग करना है lsof

  1. पीआईडी ​​खोजने के लिए गतिविधि मॉनिटर का प्रयोग करें mysql, या उपयोग करें ps -ef | grep mysqld इसे खोजने के लिए।

  2. sudo lsof -p PID_OF_MYSQLD और देखें कि MySQL कौन सी फ़ाइलें खुली है।


9
2017-10-29 14:30





3 प्रकार के MySQL / MariaDB लॉग हैं:

  • 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)")

8
2018-06-09 15:09





इसे खोजने के लिए खुद को थोड़ी देर लग गई ... इस स्थान को आजमाएं: '

sudo vi /usr/local/mysql/data/YOUR-USERNAME.local.err

5
2017-07-25 15:32



मेरा अंदर था /usr/local/var/mysql/<USERNAME>.local.err - jonnysamps


डिफ़ॉल्ट रूप से, सभी लॉग फ़ाइलों को mysqld डेटा निर्देशिका में बनाया जाता है।

स्रोत: MySQL दस्तावेज़ीकरण

आप उपयोग कर सकते हैं mysqlbinlog / usr / local / mysql / data / में बाइनरी लॉग फ़ाइलों को पढ़ने के लिए / (मेरी स्थापना में सभी बाइनरी नहीं थे)। कुछ त्रुटियों को बस stderr के लिए निर्देशित किया जाता है ताकि आप जांचना चाहें /var/log/system.log भी।


3
2017-07-18 16:10



मेरे पास mysql dir में डेटा निर्देशिका नहीं है। मैंने सभी / usr / local / mysql / निर्देशिका में देखा है और लॉग नहीं मिल रहा है। mysql कॉन्फ़िगरेशन देखने का कोई तरीका नहीं है? एक phpinfo की तरह () - Tony
आपने MySQL कैसे स्थापित किया? मैक ओएस एक्स सर्वर, मैकपॉर्ट्स, या आधिकारिक MySQL पैकेज के साथ पूर्व-स्थापित MySQL? - Chealion


उस लॉग को रखने वाले फ़ोल्डर का उपयोग किए बिना आपके लिए सुलभ नहीं हो सकता है sudo:

sudo ls -l "/usr/local/mysql-5.0.51a-osx10.5-x86"
[..]
drwxr-x---   4 _mysql  wheel    136 Jul 10 23:06 data

यदि आपको बड़ी लॉग फ़ाइल मिलती है और जब आप टाइम मशीन का उपयोग कर रहे होते हैं, तो आप पढ़ना चाहेंगे टाइम मशीन क्या कर रही है? सर्वर फॉल्ट पर।


0
2017-07-18 16:59



मेरे पास / usr / local / mysql में कोई डेटा डीआईआर नहीं है - Tony


/Library/Logs/MySQL.log


-1
2017-07-18 16:53



मैं वहां अन्य लॉग देखता हूं, लेकिन mysql नहीं - Tony
मैक ओएस एक्स सर्वर का संस्करण क्या है? सामान्य रूप से, आप मैक ओएस एक्स सर्वर के तहत / var / log / & / लाइब्रेरी / लॉग / में देखना चाहेंगे। इस समस्या के लिए अधिक विशिष्ट, देखें /var/log/system.log, / var / mysql (.err लॉग फ़ाइलों की तरह) में कुछ उपयोग हो सकता है, लेकिन मैं (तेंदुए सर्वर की डिफ़ॉल्ट कॉन्फ़िगरेशन पर) उपर्युक्त / लाइब्रेरी / लॉग्स / MySQL.log। क्या आप सॉकेट या नेटवर्क कनेक्शन से कनेक्ट करने की कोशिश कर रहे हैं? यदि उत्तरार्द्ध, क्या आपने सर्वर व्यवस्थापक में "नेटवर्क कनेक्शन सक्षम करें" (तेंदुए पर; टाइगर में यह / अनुप्रयोग / उपयोगिता में एक अलग ऐप था)? - morgant