strace
লাইভ মাইএসকিউএল / মারিয়াডিবি ক্যোয়ারী দেখার দ্রুততম উপায় হ'ল ডিবাগার ব্যবহার করা। লিনাক্সে আপনি ব্যবহার করতে পারেন 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"
সুতরাং আপনার কনফিগারেশন ফাইলগুলিকে স্পর্শ না করে নন-টাইম সহ মোটামুটি পরিষ্কার এসকিউএল কোয়েরিগুলি দেখতে পাওয়া উচিত।
স্পষ্টতই এটি লগগুলি সক্ষম করার মানক পদ্ধতির প্রতিস্থাপন করবে না, যা নীচে বর্ণিত (যার মধ্যে এসকিউএল সার্ভার পুনরায় লোড করা জড়িত)।
dtrace
সার্ভার স্পর্শ না করে লাইভ মাইএসকিউএল অনুসন্ধানগুলি দেখতে মাইএসকিউএল অনুসন্ধানগুলি ব্যবহার করুন। উদাহরণ লিপি:
#!/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)
আরও জানুন: মাইএসকিউএলকে ডিট্র্যাকিংয়ের সাথে শুরু করা
গীবস মাইএসকিউএল স্পাইগ্লাস
এই উত্তর দেখুন ।
লগ
উন্নয়নের প্রস্তাবগুলির জন্য কার্যকর পদক্ষেপগুলি এখানে।
আপনার ~/.my.cnf
বা বিশ্বব্যাপী এই লাইনগুলি যুক্ত করুন my.cnf
:
[mysqld]
general_log=1
general_log_file=/tmp/mysqld.log
পাথ: /var/log/mysqld.log
বা /usr/local/var/log/mysqld.log
আপনার ফাইল অনুমতিগুলির উপর নির্ভর করেও কাজ করতে পারে।
তারপরে আপনার মাইএসকিউএল / মারিয়াডিবি পুনরায় চালু করুন ( sudo
প্রয়োজনীয় হলে উপসর্গ ):
killall -HUP mysqld
তারপরে আপনার লগগুলি পরীক্ষা করুন:
tail -f /tmp/mysqld.log
শেষ করার পর, পরিবর্তন general_log
করার জন্য 0
(তাই আপনি যদি ভবিষ্যতে এটি ব্যবহার করতে পারেন), তারপর ফাইল এবং পুনরায় আরম্ভ করুন SQL সার্ভার আবার সরান: killall -HUP mysqld
।