मैंने ड्रूपल डेटाबेस के लिए मास्टर / स्लेव प्रतिकृति के साथ दो MySQL सर्वर सेटअप किए हैं और मैंने पुष्टि की है कि डेटाबेस सिंक और प्रतिकृति में हैं।
मैं अब मूल रूप से विफलता / अतिरेक उद्देश्यों के लिए दोनों डेटाबेसों के लिए ड्रुपल को इंगित करने की कोशिश कर रहा हूं। अगर मुझे हमारे प्राथमिक डेटाबेस सर्वर को रिबूट करने की आवश्यकता है तो मैं नहीं चाहता कि हमारी साइट नीचे जाए। (विफलता परिदृश्यों के दौरान केवल पढ़ने के लिए स्वीकार्य है)
निम्नलिखित लेख के आधार पर । मैंने settings.php
निम्नानुसार संशोधित किया है:
$databases['default']['default'] = array(
'driver' => 'mysql',
'database' => 'sdrupal',
'username' => 'drupal',
'password' => 'topsecret',
'host' => 'masterdb.ptp.local',
);
$databases['default']['slave'][] = array(
'driver' => 'mysql',
'database' => 'sdrupal',
'username' => 'drupal',
'password' => 'topsecret',
'host' => 'slavedb.ptp.local',
);
कॉन्फ़िगरेशन तब तक ठीक है जब तक मैं मास्टर बंद नहीं करता (सेवा mysqld stop) - जब मैं ऐसा करता हूं तो मेरी साइट pukes:
PDOException: SQLSTATE [HY000] [2013] 'आरंभिक संचार पैकेट पढ़ने' पर MySQL सर्वर से कनेक्शन खो गया, सिस्टम त्रुटि: 111 में drupal_is_denied () (लाइन 1895/www/includes -bootstrap.inc की लाइन)। अतिरिक्त
PDOException: SQLSTATE [HY000] [2013] MySQL सर्वर से 'प्रारंभिक संचार पैकेट पढ़ने', सिस्टम त्रुटि: 111 में dblog_watchdog () (/ 141/modules/dlog/dblog.module की लाइन 141) पर कनेक्शन खो गया है।
यह काम करने के लिए क्या ट्रिक है?