উত্তর:
চেলিয়ন যেমন উল্লেখ করেছেন, আপনার মাইএসকিএল ইনস্টল করা যেতে পারে এমন কয়েকটি উপায় রয়েছে। যার মধ্যে প্রতিটি আপনার ডেটা ডিয়ার এবং / অথবা বিভিন্ন স্থানে লগ রাখবে। নিম্নলিখিত কমান্ডটি আপনাকে (এবং আমাদের) কোথায় দেখতে হবে তার একটি ভাল ইঙ্গিত দেবে।
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/
আমার ল্যাপটপে রাখি কারণ আমি আমার সমস্ত লগগুলি পুনরায় বুট করতে careিলে toালা করি না (আসলে আমি পছন্দ করি)।
আসুন এটি সমস্ত একসাথে রাখুন এবং আপনাকে একটি অনায়িক তৈরি করুন:
$(ps auxww|sed -n '/sed -n/d;/mysqld /{s/.* \([^ ]*mysqld\) .*/\1/;p;}') --verbose --help|grep '^log'
একটি কমান্ড কার্যকর করুন এবং আপনি mysql এর চলমান দৃষ্টান্তের জন্য সমস্ত লগের একটি তালিকা পাবেন।
উপভোগ করুন!
এই বাশ-ফু সবকিছুর ওপেন সোর্সের প্রতি আমার প্রতিশ্রুতি দিয়ে বিনামূল্যে আপনার কাছে নিয়ে এসেছিল।
এখানে মাইএসকিউএল / মারিয়াডিবি লগের 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 ডেটা ডিরেক্টরিতে তৈরি করা হয়।
সূত্র: মাইএসকিউএল ডকুমেন্টেশন
আপনি mysqlbinlog
/ usr / লোকাল / mysql / ডেটা / এ আমার বাইনারি লগ ফাইলগুলি পড়তে ব্যবহার করতে পারেন (আমার ইনস্টলেশনটিতে সমস্ত বাইনারি ছিল না)। কিছু ত্রুটিগুলি কেবল স্ট্যাডারকে নির্দেশিত হয় যাতে আপনিও এটি পরীক্ষা করতে পারেন /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 ডেটা ডিরেক্টরিতে তৈরি করা হয়। দুর্ভাগ্যক্রমে, অনেক লোক তাদের লগ ফাইলগুলি (এবং প্রোগ্রামগুলি) তাদের সাধারণ স্থানে রাখেন না। আমি তাদের একজন!
আমি এই রুটিনটি নিজেই মাইএসকিউএল দিয়ে চলেছি যতক্ষণ না আমি মাইএসকিউএলের জন্য নাভিট্যাট চেষ্টা করেছি । পরে আমি নাভিচ্যাট প্রিমিয়ামে আপগ্রেড করেছি । উভয়ের একটি মনিটরিং সরঞ্জাম রয়েছে যা একটি বিস্তৃত তালিকায় সমস্ত সার্ভার ভেরিয়েবলের সাথে একটি ট্যাব ধারণ করে। লগ_অরর সার্ভার ভেরিয়েবল সহ এখানে একটি স্ক্রিনশট রয়েছে:
নাভিচ্যাট সার্ভার মনিটরিং সরঞ্জামে লগ_অরর সার্ভার ভেরিয়েবল
আপনি তালিকার ঠিক সেখানে ভেরিয়েবল সেট করতে পারেন।
চিয়ার্স!
/Library/Logs/MySQL.log
mysqladmin variables
সরাসরি ব্যবহারের পরিবর্তে বর্তমান মান পাওয়ার জন্য এখন পছন্দসই কমান্ডmysqld