কিভাবে mysqldump ছাড়া দূরবর্তী ডাটাবেস ডাম্প?


8

আমি শেল স্ক্রিপ্ট ব্যবহার করে নিয়মিত বিরতিতে আমার দূরবর্তীভাবে হোস্ট করা সাইটটিতে ডাটাবেসটি ডাম্প করতে চাই। দুর্ভাগ্যক্রমে সার্ভারটি বেশ শক্তভাবে লক হয়ে গেছে, কোনও mysqldumpইনস্টল নেই, বাইনারি ফাইলগুলি সাধারণ ব্যবহারকারীরা / হোম ডিরেক্টরিতে চালিত করতে পারে না (তাই আমি নিজে এটি "ইনস্টল করতে পারি না") এবং ডাটাবেস একটি পৃথক সার্ভারে বাস করে, তাই আমি সরাসরি ফাইল দখল করতে পারে না।

কেবলমাত্র আমি যা করতে পারি তা হ'ল এসএসএইচের মাধ্যমে ওয়েব সার্ভারে লগইন করা এবং mysqlকমান্ড লাইন ক্লায়েন্টটি ব্যবহার করে ডাটাবেস সার্ভারের সাথে একটি সংযোগ স্থাপন করা । আমি কীভাবে mysqldumpএসকিউএল ফর্ম্যাটে কোনও ফাইলকে একটি লাতে বিষয়বস্তু ফেলে দিতে পারি?
বোনাস: যদি সম্ভব হয় তবে কীভাবে আমি আমার এসএসএইচ সংযোগের সরাসরি বিষয়গুলি ডাম্প করতে পারি?


আমি নীচে প্রস্তাবিত এসএসএইচ টানেল ধারণাটি পছন্দ করি তবে আমার এটি দ্বিগুণ করতে হবে।

localhost -> remote web server -> remote database server

এটি ঠিক আছে:

$ ssh -f -L 3306:mysql.example.com:3306 user@ssh.example.com -N

তবে, মাইএসকিএল-তে লগ ইন করার চেষ্টা ব্যর্থ হয়েছে:

$ mysqldump -P 3306 -h localhost -u user -p db
Enter password: 
mysqldump: Got error: 1045: Access denied for user 'user'@'localhost'
   (using password: YES) when trying to connect

আমি অনুমান করি এটি ব্যবহারকারীর শংসাপত্রগুলি প্রত্যাশা করে 'user'@'mysql.example.com'। "আসল" হোস্টের পরিবর্তে আমি কীভাবে এটি ব্যবহার করে গুছিয়ে রাখতে পারি?


ঠিক আছে, আমি 127.0.0.1 mysql.example.comআমার হোস্ট ফাইলগুলিতে যুক্ত হয়ে এর মাধ্যমে সংযুক্ত হয়ে কাজ করতে পেরেছি mysqldump -P 3306 -h mysql.example.com -u user -p db। ব্যাপারতি পুনঃসংশোধিত! আমি এখনও এমন একটি সমাধানে আগ্রহী হব যার জন্য আমাকে হোস্ট ফাইল সম্পাদনা করতে হবে না।


1
আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি হোস্ট ফাইল সম্পাদনা করার পরিবর্তে মাইএসকিউএল 'user'@'localhost'ছাড়াও এর জন্য অনুমতি প্রদান 'user'@'mysql.example.com'করুন।
Znarkus

উত্তর:


15

আপনি একটি ssh টানেল সেট করতে পারেন mysqldumpএবং আপনার স্থানীয় মেশিনে ব্যবহার করতে পারেন ।

ssh -f -L 3306:localhost:3306 user@remoteserver -N
mysqldump -P 3306 -h localhost -u dbuser dbname

1
ইউনিক্সে, 'লোকালহোস্ট' আলাদাভাবে চিকিত্সা করা হয়। যার মধ্যে, বন্দর নম্বর উপেক্ষা করা হয়, আপনাকে এই কাজটি করতে 127.0.0.1 ব্যবহার করা দরকার। dev.mysql.com/doc/refman/5.0/en/connecting.html
অ্যাড্রিয়ান


0

এই স্ক্রিপ্টটি আপনার ওয়েব সার্ভারে আপলোড করুন (আশা করুন আপনার কমপক্ষে এফটিপি অ্যাক্সেস রয়েছে), এটি শুরু করুন, ডাটাবেসের নাম / হোস্ট (আপনার "পৃথক সার্ভারের ঠিকানা") / ব্যবহারকারীর নাম / পাসওয়ার্ড উল্লেখ করুন এবং যে কোনও স্থানে ডাটাবেস ডাম্প করুন ...


0

যদি আপনার সার্ভারটি একটি ওয়েব সার্ভার হয় তবে আপনি একটি পিএইচপি স্ক্রিপ্ট ব্যবহার করতে পারেন যা স্ক্রিনে ডাটাবেসটিকে ডাম্প করে। আপনার ব্যাকআপ সার্ভারে, একটি ক্রোন রাখুন যা ডাম্প পৃষ্ঠাটি উইজেট করে। তারপরে আপনার ডাটাবেসটি কেবলমাত্র HTTP দ্বারা আপনার ব্যাকআপ সার্ভারে ফেলে দেওয়া হয়।

সুরক্ষাটি ভুলে যাবেন না: প্রত্যেকে আপনার বেসটি ডাম্প করার জন্য উপলব্ধ। একটি পাসওয়ার্ড, বা একটি আইপি সীমাবদ্ধতা রাখুন ...

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.