মাইকিউএলএল একটি ফাইলে বর্তমান কনফিগারেশন রফতানি করে


11

আমরা আমাদের my.cnf ফাইলটি হারিয়েছি এবং ভাবছিলাম যে বর্তমানে চলমান মাইএসকিএল উদাহরণ থেকে কোনও অনুলিপি রফতানি করার উপায় আছে কি না।

ধন্যবাদ!

উত্তর:


16

তিন (3) বিকল্প

বিকল্প 1: মাইএসকিএল ক্লায়েন্টের মধ্যে থেকে

mysql -uroot -A -e"SHOW GLOBAL VARIABLES;" > MySQLCurrentSettings.txt

এটি পাঠ্য ফাইলে সমস্ত অপশন ক্যাপচার করবে।

বিকল্প 2: লিনাক্স কমান্ড লাইন থেকে

ps -ef | grep mysqld | grep -v grep

এটি mysqld_safe থেকে সেট হিসাবে শুরু mysqld বিকল্পগুলি দেখায়

বিকল্প 3: সরাসরি সার্ভারকে জিজ্ঞাসা করুন

mysqld --help --verbose

'Mysqld --help --verbose' প্রদর্শনের নীচে, আপনি বর্তমান সেটিংস মাইকিএনএলডিটি my.cnf থেকে লোড হওয়া বা এতে ডিফল্ট দেখতে পাবেন।


-1 দুঃখিত, তবে এটি কোনও মানে করে না। আপনি কেন কোনও পাঠ্য ফাইলে ভ্যারিয়েবলগুলি ডাম্প করছেন, তারপরে প্রসেসলিস্টটি গ্রেপিং করছেন এবং এর ফলাফলগুলি সহ কিছুই করছেন না, তারপরে ম্যাসকিএলএডে সহায়তা পতাকাটি পড়ছেন বলে?
কোপস

@ কুপস - এগুলি তিনটি পৃথক জিনিস। প্রথমটি একটি পাঠ্য ফাইলে প্রদর্শন করুন ভেরিয়েবলগুলি ক্যাপচার করে। দ্বিতীয়টি আপনাকে দেখতে দেয় যে /etc/init.d/mysql দ্বারা মাইএসকিএল শুরু করার সময় কোন বিকল্পগুলি নির্দিষ্ট করা আছে। তৃতীয়টি আপনাকে মাইএসকিএলডি বর্তমানে কী কাজ করছে তা প্রদর্শনীর নীচের অর্ধেকের মধ্যে দেখতে দেয়। এই প্রদর্শনগুলি থেকে /etc/my.cnf এ এই বিকল্পগুলি সেট করার জন্য লেগ ওয়ার্ক করা সাম্পস্পট অবধি। /Etc/my.cnf স্বয়ংক্রিয়ভাবে পুনঃজেনার করার জন্য আমার কিছু লেখা উচিত ছিল?
RolandoMySQLDBA

আপনার খোলার লাইনটি "নিম্নলিখিত সমস্ত কিছু করুন" আপনাকে প্রশ্নের উত্তর অর্জনের জন্য ধাপে ধাপে গাইড সরবরাহ করার পরামর্শ দিচ্ছে। আপনি প্রতিটি পদক্ষেপ কী করে বা কীভাবে প্রশ্নের উত্তর দেয়, বিভ্রান্তি যুক্ত করে তাও ব্যাখ্যা করেন না! :-)
কুপস

আমি আমার উত্তরটি মূলত যেভাবে লিখেছি তাতে কোনও বিভ্রান্তির জন্য দুঃখিত Sorry
রোল্যান্ডোমাইএসকিউএলডিবিএ

যদিও মাই.সিএনএফকে পুনরায় জেনারেট করা সবচেয়ে ভাল ক্ষেত্রে হবে (আমি আশা করছিলাম যে মাইএসকিএল এটি করতে পারে) তবে আমাদের পুনরুদ্ধার করার জন্য এটি সত্যিই দুর্দান্ত তথ্য। আমি এই তথ্যের জন্য গুগল করার চেষ্টা করেছি তবে আমি যেগুলি খুঁজে পেলাম তা ডাটাবেসকে সমর্থন করার বিষয়ে নিবন্ধ ছিল। ধন্যবাদ!
সমস্পট

3

এই নির্দেশাবলী সেন্টোস 7.1 এ স্টক মারিডাবের জন্য।

এখানে কোনও মেশিনের বর্তমান সেটিংসকে কোনও নতুন ইনস্টলেশন, বর্তমান বা ভবিষ্যতে প্রতিস্থাপনের পদ্ধতি অনুসরণ করতে হবে।

যে মেশিন থেকে আমরা সেটিংসটি অনুলিপি করতে চাই তাতে আমরা চালাতে পারি:

/usr/libexec/mysqld --help --verbose > mysql_current_settings.txt

অন্য একটি মেশিনে, আমরা মারিয়্যাডবি-সার্ভার ইনস্টল করতে এবং চালাতে পারি:

/usr/libexec/mysqld --help --verbose > mysql_default_settings.txt

তারপরে আমরা দুটি ফাইলই একটি ডিরেক্টরিতে রেখেছি, যা এই উদাহরণে "/ a /"।

তারপরে আমরা চালাব:

comm -3 <(sort /a/mysql_current_settings.txt) <(sort /a/mysql_default_settings.txt)

যদি কোনও আউটপুট না থাকে তবে দুটি ফাইলই অভিন্ন। যার অর্থ উভয় মেশিনে সমস্ত সেটিংস তাদের ডিফল্ট।

যদি কিছু আউটপুট থাকে তবে কিছু লাইন ইনডেন্ট হবে না, আবার কিছু লাইন ইনডেন্ট হবে।

অ-বিনষ্টিত লাইনগুলি কেবলমাত্র প্রথম ফাইলটিতে উপস্থিত থাকে, যা এখানে /a/mysql_current_settings.txt।

ইনডেন্ডেন্ড লাইনগুলি কেবলমাত্র দ্বিতীয় ফাইলটিতে উপস্থিত থাকে, যা এখানে /a/mysql_default_settings.txt।

এখন আমরা সমস্ত সেটিংস জানি, কিছু সেটিং ব্যতীত যেগুলি কমান্ড লাইনে মাইএসকিএলডি শুরু হয়েছিল সেট ব্যতীত। এই সেটিংসটি /etc/my.cnf, বা /etc/my.cnf.d/* ফাইল, বা একটি কাস্টম স্ক্রিপ্ট, বা একটি উপন্যাস ইত্যাদি হতে পারে any যে কোনও ক্ষেত্রে, আমরা নিম্নলিখিত কমান্ডের সাহায্যে তাদের দেখতে পাচ্ছি:

ps -ef | grep mysqld

এখন আমরা খুব কম সেটিংস জানি যে এটিকে পুরানো হিসাবে কনফিগার করতে আমাদের একটি নতুন ইনস্টলেশন পরিবর্তন করতে হবে।


এখানে কিছু অন্যান্য বিবরণ অনুসরণ করুন।

Os.১-এর উপরে, নিম্নলিখিত কমান্ডটি ম্যাসকিএলএড শুরু হওয়া কমান্ড লাইনে সেট করা কিছু সেটিংস ব্যতীত সমস্ত বর্তমান সেটিংস দেখায়:

/usr/libexec/mysqld --help --verbose

মোট, এটি দেখায়:

প্রথম অংশে, সেটিংস যা আমরা "মাইকিকিএলডি" এর পরে প্রথম পরামিতি হিসাবে ব্যবহার করতে পারি যখন আমরা এটি শুরু করি;

দ্বিতীয় অংশে, সংকলনের সময় সেটিংস সেট করা হয়েছে;

তৃতীয় অংশে, বর্তমান সেটিংস।

এমনকি যদি তার আউটপুটটির শেষ লাইনটি বলে: একটি চলমান মাইএসকিউএল সার্ভার কী ব্যবহার করছে তা দেখতে, টাইপ করুন:

    mysqladmin variables -uroot -p

আমরা যদি এটি /etc/my.cnf এ পরিবর্তন করি এবং মাইএসকিএল পুনরায় চালু করি তা সত্ত্বেও, কমান্ডটি Fe, বাইন্ড-ঠিকানা প্রদর্শন করে না।

এছাড়াও নিম্নলিখিত কমান্ডটি অনেকগুলি সেটিংস দেখায় তবে "বাইন্ড-ঠিকানা" নয়:

mysql -uroot -p -e"SHOW VARIABLES;"

মনে রাখবেন যে, 7.1 সেন্টে, মাইএসকিএলড $ PATH তে নেই।


2

একটি বর্তমান my.cnf উত্পন্ন করার জন্য এখানে আমার প্রিয় উপায়:

{ echo -e "# MYSQL VARIABLES {{{1\n##\n# MYSQL `mysql -V|sed 's,^.*\(V.*\)\, for.*,\1,'` - By: `logname`@`hostname -f` on `date +%c`\n##"; for l in {a..z}; do echo '#'; mysql -NBe "SHOW GLOBAL VARIABLES LIKE '${l}%'" | sed 's,\t,^= ,' | column -ts^ | tr "\n" '@' | eval $(echo "sed '" "s,@\("{a..u}{a..z}"\),\n\n\1,;" "'") | eval $(echo "sed '" "s,@\(innodb_"{a..z}{a..z}"\),\n\n\1,;" "'") | tr '@' "\n" | sed 's,^,# ,g'; done; echo -e "#\n##\n# MYSQL VARIABLES }}}1"; } | tee ~/mysql-variables.log

তবে এটি ম্যাক ওএস এক্সের জন্য নির্ভরযোগ্যভাবে কাজ করে না।

এটি আপনার মাই সিএনএফ-তে আমদানি করার জন্য একটি পরিষ্কার ভেরিয়েবল লগ আউটপুট দেবে।

আসল উত্স: http://www.askapache.com/mysql/view-mysql-variables-my-cnf.html


কিছু নোট: 1. বিএসডিমেইনটিলগুলি ইনস্টল করা দরকার 2. সতর্কতা: এটি
মাইএসকিএল

সার্ভার সংস্করণের জন্য কমান্ডটি হ'ল mysqld -V|sed 's,^.*\(V.*\)\ for.*,\1,'। ক্লায়েন্ট এবং সার্ভার উভয়ই একসাথে ইনস্টল করা হয়েছে বলে আমি মনে করি যেহেতু এটি গুরুত্বপূর্ণ নয় Not এর উদ্দেশ্য কী {{{1এবং 1}}}?
beppe9000
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.