जवाबों:
तीन (3) विकल्प
विकल्प 1: mysql क्लाइंट के भीतर से
mysql -uroot -A -e"SHOW GLOBAL VARIABLES;" > MySQLCurrentSettings.txt
यह टेक्स्ट फ़ाइल में सभी विकल्पों को कैप्चर करेगा।
विकल्प 2: लिनक्स कमांड लाइन से
ps -ef | grep mysqld | grep -v grep
यह विकल्प दिखाएगा mysqld mysqld_safe के सेट से शुरू हुआ
विकल्प 3: सर्वर से सीधे पूछें
mysqld --help --verbose
'Mysqld --help --verbose' डिस्प्ले के निचले भाग में, आप वर्तमान सेटिंग्स mysqld को my.cnf से लोड करेंगे या डिफ़ॉल्ट रूप से देखेंगे।
ये निर्देश स्टॉक मारीडब पर सेंटोस 7.1 पर हैं।
एक मशीन की वर्तमान सेटिंग्स को एक नए इंस्टॉलेशन, वर्तमान या भविष्य में बैकअप या दोहराने के लिए इस प्रकार है।
जिस मशीन से हम सेटिंग्स कॉपी करना चाहते हैं, उस पर हम चल सकते हैं:
/usr/libexec/mysqld --help --verbose > mysql_current_settings.txt
किसी अन्य मशीन पर, हम mariadb- सर्वर स्थापित कर सकते हैं और चला सकते हैं:
/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_settline.txt है।
अब हम सभी सेटिंग्स को जानते हैं, कुछ सेटिंग्स को छोड़कर जो कमांड लाइन में सेट की गई हैं जो mysqld शुरू हुई हैं। ये सेटिंग्स /etc/my.cnf, या /etc/my.cnf.d/* फ़ाइलों, या एक कस्टम स्क्रिप्ट, या एक उपनाम, आदि से आ सकती हैं। किसी भी मामले में, हम उन्हें निम्न आदेश के साथ देख सकते हैं:
ps -ef | grep mysqld
अब हम बहुत कम सेटिंग्स जानते हैं कि हमें पुराने के रूप में कॉन्फ़िगर करने के लिए एक नई स्थापना पर बदलना होगा।
यहां कुछ अन्य विवरणों का पालन करें।
सेंटोस 7.1 पर, निम्न कमांड सभी मौजूदा सेटिंग्स को दिखाती है, कुछ सेटिंग्स को छोड़कर जो कमांड लाइन में सेट होती हैं जो mysqld शुरू हुई थीं:
/usr/libexec/mysqld --help --verbose
कुल में, यह दिखाता है:
पहले भाग में, सेटिंग्स जिसे हम "mysqld" के बाद पहले पैरामीटर के रूप में उपयोग कर सकते हैं जब हम इसे शुरू करते हैं;
दूसरे भाग में, संकलन समय पर सेट किया गया;
तीसरे भाग में, वर्तमान सेटिंग्स।
भले ही इसके आउटपुट की अंतिम पंक्ति कहती है: यह देखने के लिए कि एक रनिंग MySQL सर्वर किन मूल्यों का उपयोग कर रहा है, टाइप करें:
mysqladmin variables -uroot -p
यदि हम इसे /etc/my.cnf में बदलते हैं और mysql को पुनरारंभ करते हैं, तो भी वह आदेश प्रदर्शित नहीं करता है।
साथ ही निम्न आदेश कई सेटिंग्स दिखाता है लेकिन "बाइंड-एड्रेस" नहीं:
mysql -uroot -p -e"SHOW VARIABLES;"
ध्यान दें कि, सेंटोस 7.1 पर, mysqld $ PATH में नहीं है।
वर्तमान 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
हालांकि, यह मैक ओएस एक्स के लिए मज़बूती से काम नहीं करता है।
यह आपके my.cnf में आयात करने के लिए तैयार एक साफ चर लॉग आउटपुट करेगा।
मूल स्रोत: http://www.askapache.com/mysql/view-mysql-variables-my-cnf.html
mysqld -V|sed 's,^.*\(V.*\)\ for.*,\1,'
। सुनिश्चित नहीं है कि यह मायने रखता है क्योंकि मुझे लगता है कि क्लाइंट और सर्वर दोनों एक साथ स्थापित हैं। का उद्देश्य क्या है {{{1
और 1}}}
?