2015-07-02 34 views
5

मुझे दूरस्थ सर्वर से एक स्थानीय सर्वर पर mysql डीबी की प्रतिलिपि बनाने की आवश्यकता है। एकमात्र तरीका जिसे मैं उस डीबी तक पहुंच प्राप्त कर सकता हूं वह एक दूरस्थ कंप्यूटर से कनेक्ट हो रहा है (चलिए इसे एक्स कहते हैं) एसएसएच के साथ, और फिर उस कंप्यूटर से मैं mysql -h address -u username -p password के साथ mysql से कनेक्ट करता हूं। मेरी सीमा यह है कि मैं MySQL सर्वर पर डंप नहीं कर सकता जो डीबी चलाता है, और कंप्यूटर एक्स को डंप नहीं कर सकता (प्रशासनिक कारण के लिए जो बदला नहीं जा सकता है)।एक दूरस्थ सर्वर से mysqldump

क्या mysql को सीधे मेरे स्थानीय सर्वर पर डंप करने के लिए कहने का कोई तरीका है? (शायद पीआईपीई का उपयोग कर, हालांकि मैं इससे परिचित नहीं हूं)। इसके लायक होने के लिए, मेरा सर्वर उबंटू सर्वर पर चलता है, एक्स भी लिनक्स पर चल रहा है।

मैंने समाधान की तलाश करने की कोशिश की लेकिन इस सटीक परिदृश्य में कुछ नहीं मिला।

किसी भी मदद की सराहना करें।

सादर, Elad

+0

आप ssfs का उपयोग करने और mysql सर्वर पर एक दूरस्थ फ़ोल्डर (शायद आपके स्थानीय पीसी को सुलभ होने पर) को मैप करने का प्रयास कर सकते हैं। फिर डंप के लिए इसका इस्तेमाल करें। (मुझे लगता है कि आप एक लिनक्स mysql सर्वर का उपयोग कर रहे हैं) –

+0

आप दूरस्थ मशीन पर कमांड चलाने के लिए ssh बता सकते हैं, फिर आउटपुट को अपने स्थानीय कंप्यूटर पर एक फ़ाइल में रीडायरेक्ट कर सकते हैं –

उत्तर

3

आप SSH के सुरंग सुविधा का उपयोग कर सकते हैं:

ssh server-x -L 12345:remote-db-server:3306 

यह (एक आप कर रहे हैं स्थानीय मशीन पर पोर्ट 12345 पर TCP कनेक्शन के लिए सुनने के लिए SSH ग्राहक बता देंगे से कनेक्ट), और server-x से remote-db-server पर पोर्ट 3306 (डिफ़ॉल्ट MySQL सर्वर पोर्ट) से कनेक्शन के रूप में उन्हें रिले करने के लिए।

फिर आप अपने स्थानीय कंप्यूटर पर mysqldump चला सकते हैं और इसे localhost पोर्ट 12345 से कनेक्ट करने के लिए कह सकते हैं। यह वास्तव में दूरस्थ डेटाबेस सर्वर से कनेक्ट हो जाएगा, और उस सर्वर के परिप्रेक्ष्य से यह कनेक्शन की तरह दिखेगा server-x से आ रहा है। mysqldump STDOUT है, जो अपने स्थानीय खोल के STDOUT पर भेज दिया जाएगा करने के लिए अपने डंप लिखते हैं इस आदेश के साथ

$ ssh [email protected] "mysqldump -h host -u username -p dbname" > mylocalfile.sql 

,:

2

आप SSH का STDIN/STDOUT पुनर्निर्देशन सुविधा का उपयोग कर सकते हैं। > mylocalfile.sql के साथ आप स्थानीय फ़ाइल में STDOUT की स्ट्रीम लिखते हैं।

संबंधित मुद्दे