ওএস এক্স-এ আমার মাইএসকিএল লগইন কোথায়?


74

আমি / var / লগ এবং / ইউএসআর / স্থানীয় / মাইএসকিএল পরীক্ষা করেছি এবং আমি লগটি খুঁজে পাচ্ছি না। আমি পিএইচপি ফাংশন সহ একটি ডেটাবেস সংযোগ স্থাপনে একটি ত্রুটি সমাধানের চেষ্টা করছি।

উত্তর:


95

চেলিয়ন যেমন উল্লেখ করেছেন, আপনার মাইএসকিএল ইনস্টল করা যেতে পারে এমন কয়েকটি উপায় রয়েছে। যার মধ্যে প্রতিটি আপনার ডেটা ডিয়ার এবং / অথবা বিভিন্ন স্থানে লগ রাখবে। নিম্নলিখিত কমান্ডটি আপনাকে (এবং আমাদের) কোথায় দেখতে হবে তার একটি ভাল ইঙ্গিত দেবে।

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/আমার ল্যাপটপে রাখি কারণ আমি আমার সমস্ত লগগুলি পুনরায় বুট করতে careিলে toালা করি না (আসলে আমি পছন্দ করি)।

আসুন এটি সমস্ত একসাথে রাখুন এবং আপনাকে একটি অনায়িক তৈরি করুন:

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

একটি কমান্ড কার্যকর করুন এবং আপনি mysql এর চলমান দৃষ্টান্তের জন্য সমস্ত লগের একটি তালিকা পাবেন।

উপভোগ করুন!

এই বাশ-ফু সবকিছুর ওপেন সোর্সের প্রতি আমার প্রতিশ্রুতি দিয়ে বিনামূল্যে আপনার কাছে নিয়ে এসেছিল।


2
mysqladmin variablesসরাসরি ব্যবহারের পরিবর্তে বর্তমান মান পাওয়ার জন্য এখন পছন্দসই কমান্ডmysqld
জন কমিংস

@ জনক্যামিংস, উত্স?
পেসারিয়ার

আজ আমি কোনও মন্তব্য ছাড়াই একটি ডাউন ভোট পেয়েছি। আমি আমার সমস্ত উত্তর বজায় রাখি। এমনকি 10 বছরের পুরানোও। আপনি ভোট দিয়ে কারও সাহায্য করছেন না। মতামত দিন!
ব্রুনো ব্রোনোস্কি

@ জেএম 3 বিস্তৃত করার জন্য যত্ন? আমার আর ম্যাকওএসে অ্যাক্সেস নেই।
ব্রুনো ব্রোনোস্কি

12

এখানে মাইএসকিউএল / মারিয়াডিবি লগের 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)")

10

এই তথ্যটি খুঁজে পাওয়ার আরেকটি উপায় হ'ল ব্যবহার করা lsof

  1. এর পিআইডি খুঁজে পেতে ক্রিয়াকলাপ মনিটর ব্যবহার করুন mysqlবা ps -ef | grep mysqldএটি সন্ধান করতে ব্যবহার করুন ।

  2. sudo lsof -p PID_OF_MYSQLD এবং দেখুন যে ফাইলগুলি মাইএসকিউএল খোলা আছে।


6

এটি খুঁজে পেতে নিজেকে কিছুটা সময় নিয়েছে ... এই অবস্থানটি চেষ্টা করুন: '

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

3
আমার ছিল/usr/local/var/mysql/<USERNAME>.local.err
jonnysamps

3

ডিফল্টরূপে, সমস্ত লগ ফাইলগুলি mysqld ডেটা ডিরেক্টরিতে তৈরি করা হয়।

সূত্র: মাইএসকিউএল ডকুমেন্টেশন

আপনি mysqlbinlog/ usr / লোকাল / mysql / ডেটা / এ আমার বাইনারি লগ ফাইলগুলি পড়তে ব্যবহার করতে পারেন (আমার ইনস্টলেশনটিতে সমস্ত বাইনারি ছিল না)। কিছু ত্রুটিগুলি কেবল স্ট্যাডারকে নির্দেশিত হয় যাতে আপনিও এটি পরীক্ষা করতে পারেন /var/log/system.log


মাইএসকিএল ডায়ারে আমার কোনও ডেটা ডিরেক্টরি নেই। আমি সমস্ত / usr / স্থানীয় / mysql / ডিরেক্টরি দেখেছি এবং লগ খুঁজে পাচ্ছি না। মাইএসকিএল কনফিগারেশন দেখার কোন উপায় নেই? phpinfo ()
টনি

আপনি কীভাবে মাইএসকিউএল ইনস্টল করলেন? ম্যাক ওএস এক্স সার্ভার, ম্যাকপোর্টস, বা অফিসিয়াল মাইএসকিউএল প্যাকেজ সহ প্রাক ইনস্টলড মাইএসকিউএল?
চ্যালিওন

0

লগটি ধারণ করে ফোল্ডারটি ব্যবহার না করে আপনার অ্যাক্সেসযোগ্য হতে পারে 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

ডিফল্টরূপে, সমস্ত লগ ফাইলগুলি mysqld ডেটা ডিরেক্টরিতে তৈরি করা হয়। দুর্ভাগ্যক্রমে, অনেক লোক তাদের লগ ফাইলগুলি (এবং প্রোগ্রামগুলি) তাদের সাধারণ স্থানে রাখেন না। আমি তাদের একজন!

আমি এই রুটিনটি নিজেই মাইএসকিউএল দিয়ে চলেছি যতক্ষণ না আমি মাইএসকিউএলের জন্য নাভিট্যাট চেষ্টা করেছি । পরে আমি নাভিচ্যাট প্রিমিয়ামে আপগ্রেড করেছি । উভয়ের একটি মনিটরিং সরঞ্জাম রয়েছে যা একটি বিস্তৃত তালিকায় সমস্ত সার্ভার ভেরিয়েবলের সাথে একটি ট্যাব ধারণ করে। লগ_অরর সার্ভার ভেরিয়েবল সহ এখানে একটি স্ক্রিনশট রয়েছে:

নাভিচ্যাট সার্ভার মনিটরিং সরঞ্জামে লগ_অরর সার্ভার ভেরিয়েবল

নাভিচ্যাট সার্ভার মনিটরিং সরঞ্জামে লগ_অরর সার্ভার ভেরিয়েবল

আপনি তালিকার ঠিক সেখানে ভেরিয়েবল সেট করতে পারেন।

চিয়ার্স!


-2

/Library/Logs/MySQL.log


আমি সেখানে অন্যান্য লগগুলি দেখতে পাচ্ছি, তবে মাইএসকিএল নয়
টনি

এটি ম্যাক ওএস এক্স সার্ভারের কোন সংস্করণ? সাধারণভাবে, আপনি ম্যাক ওএস এক্স সার্ভারের অধীনে / var / লগ / এবং / লাইব্রেরি / লগগুলি সন্ধান করতে চাইবেন। এই ইস্যুতে আরও সুনির্দিষ্ট, দেখুন /var/log/system.log দেখুন / var / mysql- তে ব্যবহারের কিছু থাকতে পারে (.err লগ ফাইলের মতো) তবে আমি (চিতাবাঘের সার্ভারের ডিফল্ট কনফিগারেশনে) উপরোক্ত / লাইব্রেরি / লগ / MySQL.log। আপনি কি সকেট বা কোনও নেটওয়ার্ক সংযোগের মাধ্যমে সংযোগ দেওয়ার চেষ্টা করছেন? যদি পরবর্তীটি হয়, আপনি সার্ভার অ্যাডমিনে "নেটওয়ার্ক সংযোগ সক্ষম করুন" (চিতাবাঘাতে; বাঘে এটি / অ্যাপ্লিকেশন / ইউটিলিটিসে একটি পৃথক অ্যাপ্লিকেশন ছিল)?
মোরগান্ট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.