ऐसा लगता है कि आपको यहां कुछ समस्याएं हैं,
समय समाप्त
मैं यहां से शुरू करूंगा क्योंकि आपको अनुमति की समस्या हो सकती है। मैं पहले यह सुनिश्चित करने की अनुशंसा करता हूं कि आपके स्थानीय आईपी पते को आपके दूरस्थ mySQL डेटाबेस से कनेक्ट करने की अनुमति है और इसके विपरीत, आपके सेटअप के आधार पर आप इसे phpMyAdmin, एक होस्टिंग कॉन्सल जैसे cPanel या शेल एक्सेस के माध्यम से कॉन्फ़िगर करने में सक्षम हो सकते हैं। मैं रिमोट एक्सेस के लिए एक मजबूत पासवर्ड के साथ एक अलग उपयोगकर्ता स्थापित करने का सुझाव दूंगा। आपके पास अपने स्थानीय इंटरनेट कनेक्शन पर एक स्थिर आईपी पता होना चाहिए, यदि आपके पास अपने इंटरनेट सेवा प्रदाता से संपर्क नहीं है और एक की व्यवस्था करें।
PhpMyAdmin में, यदि आपके पास "उपयोगकर्ता विशेषाधिकार" टैब के माध्यम से और "लॉगिन जानकारी" के तहत "होस्ट" सेट करने के माध्यम से पर्याप्त पहुंच है। मैं स्पष्ट सुरक्षा कारणों से "किसी भी होस्ट" सेटिंग की अनुशंसा नहीं करता।
cPanel में, "डेटाबेस" के तहत आपको "रिमोट mySQL" ढूंढना चाहिए जहां आप अपना आईपी पता सेट कर सकते हैं।
अंत में SSH में,
- अपने पसंदीदा संपादक जैसे VI या नैनो के साथ mySQL कॉन्फ़िगरेशन फ़ाइल खोलें, उबंटू पर यह "/etc/mysql/my.conf" पर स्थित है,
- "बाइंड-एड्रेस =127.0.0.1" कमेंट करें ताकि यह "#बाइंड-एड्रेस =127.0.0.1" जैसा दिखे,
- mySQL को "/etc/init.d/mysql पुनरारंभ" के साथ पुनरारंभ करें,
- "mysql -u root -p" के साथ mySQL में लॉग इन करें,
- एक नए उपयोगकर्ता के लिए, "MY_USERNAME'@'localhost' को 'MY_PASSWORD' द्वारा पहचाना गया"
- इसके बाद "'MY_DATABASE' पर सभी विशेषाधिकार प्रदान करें।* 'MY_USERNAME'@'12.34.56.78' को 'MY_PASSWORD' द्वारा पहचाना गया;" - ध्यान दें, आईपी "12.34.56.78" को अपने वास्तविक आईपी पते से बदलें।
- अब आपके पास क्वेरी की तर्ज पर पुष्टि होनी चाहिए, ठीक है।
- अंत में "छोड़ें" कमांड के साथ mysql से बाहर निकलें और "/etc/init.d/mysql पुनरारंभ" के साथ पुनरारंभ करें
नोट:मैं रिमोट एक्सेस के लिए दोनों mySQL इंस्टॉलेशन सेट करने की सलाह दूंगा।
अब मैं आपकी स्थानीय मशीन पर एक छोटी सी स्क्रिप्ट चलाकर इसका परीक्षण करने की अनुशंसा करता हूं, कुछ इस तरह
<?php
$host = 'mysql_remoteip';
$user = 'mysql_username';
$pass = 'mysql_password';
$db = 'mysql_database';
$link = mysql_connect($host, $user, $pass) or die("Can not connect." . mysql_error());
mysql_select_db($db) or die("OOPS! I can not connect to the remote mySQL database, I was given the following error: ".mysql_error());
$sql = "SELECT column FROM table WHERE column='my_var'";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)) {
if(empty($row['column']) {
echo "WHOOPS! I could not get information from the mySQL, was there data for me to retrieve in the database?";
} else {
echo "The data I retrieved is:<br />"
echo $row['column'];
}
}
?>
नोट:स्क्रिप्ट के सही ढंग से काम करने के लिए आपके पास डेटाबेस में डेटा होना चाहिए, बिना डेटा वाला परिणाम एक संदेश प्रदर्शित करेगा कि स्क्रिप्ट डेटा को पुनर्प्राप्त नहीं कर सका, यह अभी भी स्थापित होगा कि अब आपके पास डेटाबेस तक पहुंच है या नहीं, लेकिन यह सुनिश्चित न करें कि यह 100% चालू है।
मास्टर या गुलाम
हां, यह संभव है, बशर्ते आपके पास पर्याप्त पहुंच हो
PhpMyAdmin में:
- "प्रतिकृति" टैब के अंतर्गत आपको एक विज़ार्ड मिलेगा जो आपको इसे mySQL कॉन्फ़िगरेशन फ़ाइल में सेट करने के लिए कोड प्रदान करेगा (उबंटू पर यह "/etc/mysql/my.conf" पर स्थित है),
- मास्टर सर्वर को कॉन्फ़िगर करने के लिए लिंक पर क्लिक करें
- फॉर्म में जानकारी दर्ज करें, कोड कॉपी करें
- अपनी कॉन्फ़िगरेशन फ़ाइल (उपरोक्त स्थान) पर जाएं और phpMyAdmin द्वारा प्रदान किया गया कोड जोड़ें
- एक बार जब आप कॉन्फ़िगरेशन फ़ाइल को अपडेट कर लेते हैं तो mySQL को पुनरारंभ करें और phpMyAdmin में गो बटन पर क्लिक करें, यह परिवर्तनों की पुष्टि करेगा
- अब फिर से "प्रतिकृति" टैब के अंतर्गत स्लेव सर्वर को कॉन्फ़िगर करने के लिए लिंक पर क्लिक करें
- सुनिश्चित करें कि आपकी कॉन्फ़िगरेशन फ़ाइल में अद्वितीय सर्वर-आईडी है, यदि फ़ाइल के [mysqld] अनुभाग में phpMyAdmin द्वारा प्रदान की गई लाइन नहीं जोड़ते हैं
- आवश्यक जानकारी पूर्ण करें और जाएं क्लिक करें
यह आपकी प्रतिकृति स्थापित करना चाहिए।
सिंक्रनाइज़ करें
यदि सब कुछ विफल हो गया है तो phpMyAdmin में "सिंक्रनाइज़" टैब पर जाएं, जानकारी दर्ज करें और दूर जाएं, आपको बस अगले पृष्ठ पर सिंक की पुष्टि करने की आवश्यकता है और 2 सेकंड बाद आपका काम हो गया, यह इतना आसान है।
उत्पादन सर्वरों के लिए मेरे पास व्यक्तिगत रूप से एक मास्टर/दास प्रतिकृति सेट-अप है, लेकिन विकास के लिए जब मुझे किसी त्रुटि या समस्या को दोहराने के लिए "लाइव" डेटा की आवश्यकता होती है, तो मैं सिंक करता हूं, ऐसा इसलिए है क्योंकि मुझे हर 6-12 महीनों में केवल एक बार सिंक करने की आवश्यकता होती है। अगर मुझे स्थानीय स्तर पर लाइव डेटा की आवश्यकता है तो मैं मास्टर/स्लेव प्रतिकृति स्थापित करूंगा