আমি শেল স্ক্রিপ্ট ব্যবহার করে নিয়মিত বিরতিতে আমার দূরবর্তীভাবে হোস্ট করা সাইটটিতে ডাটাবেসটি ডাম্প করতে চাই। দুর্ভাগ্যক্রমে সার্ভারটি বেশ শক্তভাবে লক হয়ে গেছে, কোনও 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। ব্যাপারতি পুনঃসংশোধিত! আমি এখনও এমন একটি সমাধানে আগ্রহী হব যার জন্য আমাকে হোস্ট ফাইল সম্পাদনা করতে হবে না।
'user'@'localhost'ছাড়াও এর জন্য অনুমতি প্রদান'user'@'mysql.example.com'করুন।