MySQL सेवा को पुनः आरंभ किए बिना my.cnf को पुनः लोड करें


26

मुझे प्रतिकृति-मास्टर के रूप में कार्य करने के लिए MySQL सर्वर को कॉन्फ़िगर करना होगा।

मैंने बाइनरी लॉग को सक्रिय करने के लिए my.cnf को संशोधित किया है, लेकिन अब कॉन्फ़िगरेशन को पुनः लोड करने के लिए मुझे सेवा को फिर से लोड करना होगा /etc/init.d/mysqld restart। समस्या यह है कि सर्वर को प्रति सेकंड कई प्रश्न मिलते हैं और मैं उन सभी डेटा को खोना नहीं चाहता जो इस बीच आ सकते हैं।

सेवा को फिर से शुरू किए बिना कॉन्फ़िगरेशन फ़ाइल my.cnf को फिर से लोड करने का एक तरीका है?


3
/etc/init.d/restartपूरे मेजबान को फिर से शुरू करेगा। आप शायद सोच रहे हैं/etc/init.d/mysqld restart
केविन एम

हाँ, मैं अपने को पुनः आरंभ करने की सलाह देता हूं। संपादित। धन्यवाद!
डेविड एस्पर्ट

जवाबों:


28

MySQL विशिष्ट:
my.cnf में विकल्प सिस्टम चर हैं । ये चर या तो गतिशील हैं (रनटाइम में बदले जा सकते हैं) या गतिशील नहीं हैं। जो गतिशील हैं, उन्हें SET वेरिएबल सिंटैक्स के साथ रन टाइम पर बदला जा सकता है। आप चर के साथ देख सकते हैं SHOW VARIABLES;। लेकिन मैनुअल में इस लिंक के अनुसार , बाइनरी लॉग विकल्प गतिशील नहीं है। तो ऐसा लगता है कि आपको पुनरारंभ करना होगा। आप किसी ऐसे व्यक्ति की प्रतीक्षा कर सकते हैं जो अपने आप को इस बात की पुष्टि करने के लिए खुद से बेहतर जानता हो।

सामान्य में डेमॉन:
लिनक्स में, /etc/init.d/ उन स्क्रिप्ट को रखता है जो डेमन (सेवाओं) को शुरू और रोकती हैं। चूंकि ये स्क्रिप्ट हैं, आप उन्हें टेक्स्ट एडिटर से देख सकते हैं। इन लिपियों में से कई पुनः लोड तर्क लेगी। मेरी mysql स्क्रिप्ट को देखते हुए, तर्क के रूप में पुनः लोड करना mysqladmin कमांड का उपयोग करता है। तो फिर से लोड के तहत mysqladmin के लिए मैनुअल कहते हैं:

पुनः लोड

Reload the grant tables.

तो सामान्य रूप से ऐसा लगता है, यह कॉन्फ़िगरेशन परिवर्तनों के लिए नहीं है, बल्कि विशेषाधिकारों में परिवर्तन (शायद समकक्ष फ्लश विशेषाधिकार आदेश?)।


2
अरे, बहुत अच्छी व्याख्या। ऐसा लगता है कि बिना पुनरारंभ किए इसे करने का कोई तरीका नहीं है। यदि कोई भी समाधान या समाधान का उत्तर नहीं देता है तो मैं आपके प्रश्न को स्वीकार करूंगा। धन्यवाद।
डेविड एस्पार्ट

आपके लिंक के अनुसार, यह SET GLOBAL binlog_format = 'STATEMENT' जैसा दिखता है; क्या चाल चलेगी?
काइल स्मिथ

अन्य काइल: ऐसा लगता है, लेकिन मुझे लगता है कि बाइनरी लॉगिंग के लिए पहले से ही सक्षम होना होगा ताकि कुछ भी कर सकें (और शायद सेट किया जा सके)। उस चर को बाद में mysql के मेरे वर्तमान 5.0.x संस्करण की तुलना में पेश किया गया था ताकि मैं परीक्षण न कर सकूं।
काइल ब्रान्ड

मुझे SET कमांड सिंटैक्स की खोज करनी थी - किसी और की ज़रूरत पड़ने पर
मार्क मैकडॉनल्ड

4
यह भी ध्यान देने योग्य है कि माईएसक्यूएल के संस्करणों के रूप में कौन से चर गतिशील परिवर्तन हैं। उदाहरण के लिए 5.x में आप धीमी क्वेरी लॉग ऑन-द-फ्लाई को सक्षम कर सकते हैं, लेकिन 4.x में आप नहीं कर सकते हैं (जैसा कि मैंने कल खोजा था!)।
कोप्स

1

मैं इस के लिए एक समाधान के लिए चारों ओर देख रहा हूँ, लेकिन मुझे मिली सीमित मदद से संतुष्ट नहीं था। एक चप ने मार दिया -HUP .. मेरे लिए काम नहीं किया ।।

मैंने जो किया वह अपाचे उदाहरणों को रोकना था .. और फिर उन्हें बाद में जारी रखना था .. एक सर्वर पर एक आकर्षण की तरह काम किया जहां मेरे पास प्रति सेकंड औसतन 25 सक्रिय अनुरोध हैं।

sudo के साथ (स्पष्ट रूप से) pkill -STOP httpd && /etc/init.d/mysqld पुनरारंभ और& pkill -CONT httpd

अपने अपाचे प्रक्रिया के नाम और / या mysql पुनरारंभ स्क्रिप्ट को मेरा से भिन्न हो सकता है, लेकिन आप विचार सही है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.