উত্তর:
আপনি যদি লিনাক্সে থাকেন, তবে strace
উদাহরণস্বরূপ 'mysqld' দিয়ে শুরু করুন strace ./mysqld
।
অন্যান্য সমস্ত সিস্টেম কলগুলির মধ্যে আপনি এমন কিছু পাবেন:
stat64("/etc/my.cnf", 0xbfa3d7fc) = -1 ENOENT (No such file or directory)
stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=4227, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3
সুতরাং, যেমন আপনি দেখতে পাচ্ছেন..এটি .cnf ফাইলগুলি তালিকাভুক্ত করে, যা এটি ব্যবহারের চেষ্টা করে এবং শেষ পর্যন্ত ব্যবহার করে।
ps auxf
মাইএসকিউএল জন্য চালিত কমান্ডটি চালাবেন এবং সন্ধান করুন। সাধারণত এটির মতো দেখতে mysqld --basedir=/usr/local/mysql ...
( যেমন নোট করুন ... কেবলমাত্র এর অর্থ হ'ল কমান্ডে আরও বেশি পতাকা থাকতে পারে তবে আমি তার সবগুলিই তালিকাভুক্ত করব না) একবার আপনি এটি সন্ধান করলে, পুরো জিনিসটি অনুলিপি করুন এবং তারপরে মাইএসকিউএল বন্ধ করুন। আপনি লিনাক্স করছি যদি তা না হয় /etc/init.d/mysqld stop
বা mysqladmin -u root -p shutdown
। তারপরে strace
আপনার অনুলিপি করা মাইএসকিএল কমান্ডটি দিয়ে চালান । সুতরাং এটির মতো দেখতে হবে:strace mysqld --basedir=/usr/local/mysql
open(...
লাইন নেই পরিবর্তে আমার 4 টি লাইন রয়েছে যা শেষ হয় = -1 Err#2
। আপনি এখন কীভাবে জানবেন কোন ফাইলটি লোড হয়েছে?
sudo dtruss mysqld 2>&1|grep my.cnf
@ এমজিপিপি, এই আউটপুটটির অর্থ সম্ভবত ফাইলগুলির কোনওটি পাওয়া যায় নি তাই কোনও কিছুই খোলেনি।
চমত্কার "হাই পারফরম্যান্স মাইএসকিউএল" ও'রিলি বই থেকে নেওয়া:
$ which mysqld
/usr/sbin/mysqld
$ /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
Default options are read from the following files in the given order:
/etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf
!includedir
। !includedir
আমার /etc/mysql/my.cnf
ফাইলে নির্দেশিকা কেন কাজ করছে না তা বোঝার চেষ্টা করছি ।
mysqld
পুরো পথ দিয়ে কল করার দরকার পড়বে ?!
আপনি mysql --verbose --help | less
এটি চালালে এটি 11 টি লাইন সম্পর্কে বলবে যে .cnf
এটি কোন ফাইলগুলি সন্ধান করবে।
এছাড়াও আপনি কি করতে পারেন mysql --print-defaults
আপনি দেখাতে কিভাবে কনফিগারেশন মান এটা ব্যবহার করবে। এটি কোন কনফিগার ফাইলটি লোড হচ্ছে তা সনাক্ত করতেও এটি কার্যকর হতে পারে।
mysqld
পরিবর্তে ব্যবহার করতে চাইতে পারেনmysql
mysqld --print-defaults
, যখন আমি এই প্রশ্নটি googled এটি ঠিক কি চেয়েছিলেন।
আমি উইন্ডোতে আছি এবং আমি মাইএসকিউএল সম্প্রদায়ে 5.6 এর সর্বশেষতম সংস্করণ ইনস্টল করেছি installed
কনফিগারেশন ফাইলটি কী ব্যবহার করে তা দেখতে আমি যা করেছি তা হ'ল প্রশাসনিক সরঞ্জামসমূহ> পরিষেবাদি> মাইএসকিউএল 56> রাইট ক্লিক করুন> বৈশিষ্ট্যগুলি এবং কার্যকর করার যোগ্য পথটি পরীক্ষা করা:
"সি: / প্রোগ্রাম ফাইল / মাইএসকিউএল / মাইএসকিউএল সার্ভার 5.6 / বিন \ মাইকিকিএলডি" --defaults-file = "সি: \ প্রোগ্রামডাটা \ মাইএসকিউএল \ মাইএসকিউএল সার্ভার 5.6 \ my.ini" মাইএসকিউএল 55
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
ডিফল্টরূপে।
একটি বিকল্প ব্যবহার করা হয়
mysqladmin variables
mysqld --help --verbose বিপজ্জনক। চলমান উদাহরণের জন্য আপনি পিডফাইলে সহজেই ওভাররাইট করতে পারেন! এটি --pid-file = XYZ দিয়ে ব্যবহার করুন
ওহ, এবং যদি আপনার 1 টিরও বেশি ইনস্ট্যান্স চলমান থাকে তবে আপনি সত্যই এটি ব্যবহার করতে পারবেন না। এটি কেবল আপনাকে ডিফল্ট মান দেখাবে।
এটি সম্পর্কে সত্যিই ভাল নিবন্ধ:
উবুন্টু সম্পর্কে সবেমাত্র একটি দ্রুত পরীক্ষা করেছেন:
ইনস্টল করা মাইকিকিএল-সার্ভার, যা /etc/mysql/my.cnf তৈরি করেছে
mysqld --verbose --help | গ্রেপ -A 1 "ডিফল্ট বিকল্পগুলি"
110112 13:35:26 [দ্রষ্টব্য] প্লাগিন 'FEDERATED' অক্ষম।
প্রদত্ত ক্রমে নিম্নলিখিত ফাইলগুলি থেকে ডিফল্ট অপশনগুলি পড়তে হবে:
/etc/my.cnf এবং /usr/etc/my.cnf তৈরি করেছেন, প্রত্যেকে আলাদা আলাদা পোর্ট নম্বর রয়েছে
পুনরায় আরম্ভ করা মাইএসকিএল - এটি /usr/etc/my.cnf তে পোর্ট নম্বর সেট ব্যবহার করছিল
ইতিমধ্যে mysqld --defaults-file বিকল্পটি খুঁজে পেয়েছে। আপনি যদি সেখানে একটি কনফিগার ফাইল নির্দিষ্ট করে থাকেন তবে / usr / sbin / mysqld --verbose --help | যা ফিরে আসে তা নির্বিশেষে কেবলমাত্র এটিই ব্যবহৃত হবে will গ্রেপ -A 1 "ডিফল্ট বিকল্পগুলি"
আমি এটি সত্যিই দরকারী বলে মনে করেছি:
Control Panel -> Administration Tools
Properties
Path to executable
এবং দেখুন যে এটিতে পাথ রয়েছেmy.ini/my.cfg
কিছু সার্ভারে একাধিক মাইএসকিউএল সংস্করণ ইনস্টল এবং কনফিগার করা আছে। আপনি ইউনিক্স কমান্ডের সাথে চালিত সঠিক সংস্করণটি ব্যবহার করছেন তা নিশ্চিত করুন:
ps -ax | grep mysql
সার্ভিস হিসাবে মাইএসকিএল দিয়ে উইন্ডোজ সার্ভার চালিত লোকদের জন্য, আপনি কোন কনফিগার ফাইলটি চালাচ্ছেন তার সন্ধানের একটি সহজ উপায় হ'ল পরিষেবাদি নিয়ন্ত্রণ প্যানেলটি খুলুন, আপনার মাইএসকিএল পরিষেবাটি সন্ধান করুন (আমার ক্ষেত্রে 'এমওয়াইএসকিউএল ৫6'), ডান ক্লিক করুন এবং বৈশিষ্ট্যগুলি ক্লিক করুন । তারপরে এখান থেকে আপনি "এক্সিকিউটেবলের পথে" পরীক্ষা করতে defaults-file
পারেন যা আপনার কনফিগারেশন ফাইলটি কোথায় তা নির্দেশ করে এমন একটি সুইচ থাকা উচিত ।
আপনি যদি উইন্ডোতে থাকেন তবে আপনি সিসিনটার্নালস প্রোমন ব্যবহার করতে পারেন । এটি খুলুন এবং এটির মতো ফিল্টার সেটিংটি কনফিগার করুন, তারপরে "যুক্ত করুন" এ ক্লিক করুন। এখন প্রোমমন মাইএসকিএলডি নিরীক্ষণ করবে।
এখন আপনার মাইএসকিএল সার্ভারটি স্বাভাবিক হিসাবে শুরু করুন। প্রোকমন মাইএসকিএল এর পটভূমি ক্রিয়াকলাপ ক্যাপচার করবে। "আমার" অনুসন্ধান করুন। প্রোমন ফলাফল ফলকে এবং আপনি নীচের মতো কিছু পাবেন:
এটি পরিষ্কার যে মাইএসকিএল পরিবর্তে কনফিগারেশন ফাইলগুলির একটি তালিকা অনুসন্ধান করে। আমার ক্ষেত্রে এটি C:\mysql-5.7.19-winx64\my.cnf
সফলভাবে পাওয়া গেছে তাই এটি এটি ব্যবহার করছে।