আমি লিনোড থেকে দূরে সরে যাচ্ছি কারণ আমার কাছে লিনাক্স সিসাদমিন দক্ষতা প্রয়োজনীয় নয়; আরও নুব-বান্ধব পরিষেবাতে রূপান্তরটি শেষ করার আগে, আমার একটি মাইএসকিউএল ডাটাবেসের সামগ্রীগুলি ডাউনলোড করতে হবে। কমান্ড লাইন থেকে আমি এটি করার কোনও উপায় আছে কি?
আমি লিনোড থেকে দূরে সরে যাচ্ছি কারণ আমার কাছে লিনাক্স সিসাদমিন দক্ষতা প্রয়োজনীয় নয়; আরও নুব-বান্ধব পরিষেবাতে রূপান্তরটি শেষ করার আগে, আমার একটি মাইএসকিউএল ডাটাবেসের সামগ্রীগুলি ডাউনলোড করতে হবে। কমান্ড লাইন থেকে আমি এটি করার কোনও উপায় আছে কি?
উত্তর:
আপনি এটি mysqldump কমান্ড-লাইন ফাংশন ব্যবহার করে সম্পন্ন করতে পারেন ।
উদাহরণ স্বরূপ:
যদি এটি সম্পূর্ণ ডিবি হয় তবে:
$ mysqldump -u [uname] -p db_name > db_backup.sql
যদি এটি সমস্ত ডিবি হয়, তবে:
$ mysqldump -u [uname] -p --all-databases > all_db_backup.sql
এটি যদি কোনও ডিবিতে নির্দিষ্ট সারণী হয় তবে:
$ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql
এমনকি আপনি জিজিপ ব্যবহার করে আউটপুটটিকে স্ব-সংকুচিত করতেও যেতে পারেন (যদি আপনার ডিবি খুব বড় হয়):
$ mysqldump -u [uname] -p db_name | gzip > db_backup.sql.gz
আপনি যদি এটি দূরবর্তীভাবে করতে চান এবং আপনার কাছে প্রশ্নে থাকা সার্ভারটিতে অ্যাক্সেস রয়েছে, তবে নিম্নলিখিতগুলি কাজ করবে (মাইএসকিউএল সার্ভারটি 3306 পোর্টে অনুমান করে):
$ mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name > db_backup.sql
.sql
আপনি যে ফোল্ডারে কমান্ড-লাইন চালাচ্ছেন সেই ফোল্ডারে ফাইলটি ফেলে দেওয়া উচিত ।
সম্পাদনা: সিএলআই কমান্ডে পাসওয়ার্ড অন্তর্ভুক্ত করা এড়াতে আপডেট করা হয়েছে, পাসওয়ার্ড -p
ছাড়াই বিকল্পটি ব্যবহার করুন । এটি আপনাকে এটির জন্য অনুরোধ করবে এবং এটি রেকর্ড করবে না।
wget
বা scp
একবার নির্মিত বলেন ফাইল পুনরুদ্ধার করতে প্রয়োজন হবে।
>
সংরক্ষণের জন্য ব্যবহার করার পরিবর্তে , আমি বরং -r
বিদেশী চরিত্রগুলির সাথে ঝামেলা রোধ করতে বা এনকোডিং সমস্যা সম্পর্কিত সেই দুঃস্বপ্নকে এই নিবন্ধে বর্ণিত হিসাবে ব্যবহার করতে চাই ।
--result-file=db_backup.sql
পরিবর্তে আপনার ব্যবহার করা উচিত > db_backup.sql
। মাইএসকিউএল ডকুমেন্টেশন থেকে উদ্ধৃতি : "ইউটিএফ -16 কে সংযোগের অক্ষর সেট হিসাবে অনুমোদিত নয় ( অবিচ্ছিন্ন ক্লায়েন্টের চরিত্রের সেটগুলি দেখুন ), তাই ডাম্প ফাইলটি সঠিকভাবে লোড হবে না this এই সমস্যাটির চারপাশে কাজ করার জন্য, --result-file
বিকল্পটি ব্যবহার করুন যা আউটপুট তৈরি করে ASCII ফর্ম্যাট "।
কমপক্ষে আমার মধ্যে মাইএসকিএল এর সর্বশেষতম সংস্করণগুলিতে আপনি সরাসরি নিজের কমান্ডটিতে পাস দিতে পারবেন না।
আপনাকে চালাতে হবে:
mysqldump -u [uname] -p db_name > db_backup.sql
এবং তারপরে এটি পাসওয়ার্ডের জন্য জিজ্ঞাসা করবে।
-p
বিকল্প এবং প্রকৃত পাসওয়ার্ডের মধ্যে স্থান
যদি রিমোট সার্ভার থেকে ডাউনলোড করা হয় তবে এখানে একটি সাধারণ উদাহরণ:
mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql
-P ইঙ্গিত করে যে আপনি একটি পাসওয়ার্ড প্রবেশ করবেন, এটি ডিবি_নেমের সাথে সম্পর্কিত নয়। কমান্ডটি প্রবেশ করার পরে আপনাকে পাসওয়ার্ডের জন্য অনুরোধ জানানো হবে। এটি টাইপ করুন এবং এন্টার টিপুন।
উইন্ডোজগুলিতে আপনাকে মাইএসকিএল বিন উল্লেখ করতে হবে যেখানে mysqldump.exe থাকে।
cd C:\xampp\mysql\bin
mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql
এটি একটি টেক্সট ফাইলে সংরক্ষণ করুন যেমন ব্যাকআপ.সিএমডি
mysql
কারণে আপনি এটির ডিরেক্টরিতে না হয়ে যে কোনও জায়গা থেকে কমান্ড চালাতে পারেন ।
কমান্ড প্রম্পটটি ওপেন করুন এবং সরাসরি এই আদেশটি টাইপ করুন। Mysql এর ভিতরে না গিয়ে এই কমান্ডটি টাইপ করুন।
mysqldump -u [uname] -p[pass] db_name > db_backup.sql
মাইএসকিউএল ইনস্টলেশন ডিরেক্টরিতে যান এবং সেখান থেকে সিএমডি খুলুন। তারপরে আপনার ডাটাবেসের ব্যাকআপ পেতে নীচের কমান্ডটি কার্যকর করুন।
mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql
শুধু টাইপ করুন mysqldump
বাmysqldump --help
আপনার সেন্টিমিডিতে প্রদর্শিত হবেhow to use
এখানে আমার সিএমডি ফলাফল
C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help
যারা কমান্ড লাইনের মধ্যে পাসওয়ার্ড টাইপ করতে চান তাদের জন্য। এটি সম্ভব তবে এটিকে উদ্ধৃতিগুলির মধ্যে পাস করার পরামর্শ দিন যাতে বিশেষ চরিত্রটি কোনও সমস্যার কারণ না ঘটে।
mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql
এটি ব্যবহার করুন যদি আপনার আর্চাইবিড নামের ডেটাবেস থাকে তবে এই মাইএসকিএল-পি - ডেটাবেসগুলি আর্কাইডিবি> / home/datedia_backup.sql ব্যবহার করুন
এটি লিনাক্স ধরে নিলে, ব্যাকআপ ফাইলটি কোথায় সংরক্ষণ হবে তা চয়ন করুন।
উইন্ডোজ ব্যবহারকারীদের জন্য আপনি কমান্ডটি চালানোর জন্য আপনার মাইএসকিএল ফোল্ডারে যেতে পারেন
যেমন
cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql
দ্রষ্টব্য: এই পদক্ষেপটি কেবলমাত্র আপনার মাইএসকিউএল ফাইল ডাম্প করার পরে আসে (যা উপরের উত্তরগুলির বেশিরভাগটি সম্বোধন করেছে)।
এটি ধরে নেওয়া হয় যে আপনার কাছে আপনার দূরবর্তী সার্ভারে উল্লিখিত ডাম্প ফাইল রয়েছে এবং এখন আপনি এটিকে আপনার স্থানীয় কম্পিউটারে নামিয়ে আনতে চান।
.sql
আপনার রিমোট সার্ভার থেকে আপনার স্থানীয় কম্পিউটারে ফেলে দেওয়া ফাইলটি ডাউনলোড করতে , করুন
scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir