আমি কীভাবে mysqldump থেকে একটি ডাম্প ফাইল পুনরুদ্ধার করব?


542

আমাকে একটি মাইএসকিউএল ডাটাবেস ফাইল দেওয়া হয়েছিল যা আমার উইন্ডোজ সার্ভার ২০০৮ মেশিনে ডাটাবেস হিসাবে পুনরুদ্ধার করা দরকার।

আমি মাইএসকিউএল প্রশাসক ব্যবহার করার চেষ্টা করেছি, তবে আমি নিম্নলিখিত ত্রুটি পেয়েছি:

নির্বাচিত ফাইলটি mysqldump দ্বারা উত্পাদিত হয়েছিল এবং এই অ্যাপ্লিকেশনটির মাধ্যমে পুনরুদ্ধার করা যায় না।

আমি কীভাবে এই কাজ করব?

উত্তর:


586

এটি চালানোর মতোই সহজ হওয়া উচিত:

mysql -u <user> -p < db_backup.dump

যদি ডাম্পটি একক ডাটাবেসের হয় তবে আপনাকে ফাইলের শীর্ষে একটি লাইন যুক্ত করতে পারেন:

USE <database-name-here>;

এটি যদি অনেক ডাটাবেসের ডাম্প হয় তবে ব্যবহারের বিবৃতি ইতিমধ্যে সেখানে রয়েছে।

এই কমান্ডগুলি চালনার জন্য, কমান্ড প্রম্পটটি খুলুন (উইন্ডোজে) এবং এক্সিকিউটেবল cdযে ডিরেক্টরিতে mysql.exe(আপনাকে এটির জন্য খানিকটা তাকাতে হতে পারে, এটি নির্ভর করবে আপনি কীভাবে mysql ইনস্টল করেছেন, যেমন স্ট্যান্ডেলোন বা তার অংশ হিসাবে WAMP এর মতো একটি প্যাকেজ)। আপনি একবার সেই ডিরেক্টরিতে থাকলে আপনার উপরের মত কমান্ডটি টাইপ করতে সক্ষম হবেন।


1
আমি কি "মাইএসকিউএল কমান্ড লাইন ক্লায়েন্ট" ব্যবহার করি? আমি এর আগে মাইএসকিউএল আগে কখনও ব্যবহার করি নি।
জ্যাক পিটারসন 21

1
কোনও পাঠ্য সম্পাদককে ডাম্প ফাইলটি খুলুন, এটি ব্যবহার করা মোটামুটি সহজ if কমান্ড চালানো।
জাস্টিন বেনেট

6
অবশ্যই আপনি "ব্যবহার" বিবৃতিতে যে ডাটাবেসটি রেখেছেন তা প্রথমে উপস্থিত থাকতে হবে।
জাস্টিন বেনেট 21

112
ভোগ উত্তর দেখুন। ফাইলটির শুরুতে বাক্য mysql -u<user> -p mydatabasename < db_backup.dumpUSE
গঠনের

1
"কোনও পাঠ্য সম্পাদককে ডাম্প ফাইলটি খুলুন" পরামর্শটি অদ্ভুত বলে মনে হচ্ছে। এটি ছোট ডেটাবেস বা এডিটপ্যাডের মতো কোনও বাফারযুক্ত পাঠ্য সম্পাদক সহ কাজ করতে পারে তবে অন্য সমস্ত কিছুর সাথে এটি শ্বাসরোধ করবে। আপনার যদি এই পদক্ষেপ না নিতে হয় তবে ভাল হবে।
মিকাতো

718

আপনি যে ডাটাবেসটি পুনরুদ্ধার করতে চান তা যদি ইতিমধ্যে না থাকে তবে আপনাকে প্রথমে এটি তৈরি করতে হবে।

কমান্ড-লাইনে, যদি আপনি একই ডিরেক্টরিতে থাকেন তবে এতে ডাম্পড ফাইল রয়েছে, এই আদেশগুলি (যথাযথ বিকল্প সহ) ব্যবহার করুন:

C:\> mysql -u root -p

mysql> create database mydb;
mysql> use mydb;
mysql> source db_backup.dump;

52
আমি ব্যক্তিগতভাবে এই পদ্ধতিটি পছন্দ করি। এটি ডাম্পের অগ্রগতি দেখায় এবং ঠিক কীভাবে বিভিন্ন এসকিএল সময় নিচ্ছে তা দেখায়।
টফপাল

11
@ ফ্রোগজ আসলে আপনি কমান্ড লাইনে mysql -u root -psecret স্থান ছাড়াই পাসওয়ার্ড সরবরাহ করতে পারেন তবে প্রক্রিয়া তালিকাগুলি এবং লগ ফাইলগুলিতে আপনার পাসওয়ার্ড ক্লিয়ারটেক্সটে প্রদর্শিত হচ্ছে এমন অসুবিধাও রয়েছে। খালি ব্যবহার করা -pএবং প্রম্পটে এটিকে টাইপ করা আপনার পরামর্শ অনুসারে এটি ভাল ।
জো হোলোয়

এই পদ্ধতির সেশন-ভিত্তিক ভেরিয়েবলগুলি (উদাহরণস্বরূপ FOREIGN_KEY_CHECKS) সেট করে ডাম্প ফাইলটি সম্পাদনা না করে সেট করার সুবিধা রয়েছে
ক্রিস কুপার

হাত দ্বারা এই ধরণের জিনিসটি করার সময় এটি সমস্ত ভাল এবং দুর্দান্ত।
চচাম

1
একটি অসুবিধা: এটি জিজিপড ডাম্প লোড করতে পারে না (যেমন দিয়ে উত্পন্ন mysqldump db | gzip -9 > dumpfile.sql.gz)
মেরিনোস আন

245

আপনার কেবল এটি চালানো দরকার:

mysql -p -u[user] [database] < db_backup.dump

যদি ডাম্পের একাধিক ডাটাবেস থাকে তবে আপনার ডাটাবেসের নাম বাদ দিতে হবে:

mysql -p -u[user] < db_backup.dump

এই কমান্ডগুলি চালনার জন্য, কমান্ড প্রম্পটটি খুলুন (উইন্ডোজে) এবং এক্সিকিউটেবল cdযে ডিরেক্টরিতে mysql.exe(আপনাকে এটির জন্য খানিকটা তাকাতে হতে পারে, এটি নির্ভর করবে আপনি কীভাবে mysql ইনস্টল করেছেন, যেমন স্ট্যান্ডেলোন বা তার অংশ হিসাবে WAMP এর মতো একটি প্যাকেজ)। আপনি একবার সেই ডিরেক্টরিতে চলে আসার পরে আপনার কেবল কমান্ডটি টাইপ করতে সক্ষম হওয়া উচিত।



33

আমরা যখন একটি ডাম্প ফাইল তৈরি করি তখন mysqldumpএতে যা থাকে তা হ'ল ডেটাবেসের সামগ্রীগুলি পুনরায় তৈরি করার জন্য একটি বড় এসকিউএল স্ক্রিপ্ট। সুতরাং আমরা মাইএসকিউএল-র কমান্ড-লাইন ক্লায়েন্ট ব্যবহার করে এটি পুনরুদ্ধার করি:

mysql -uroot -p 

( rootমাইএসকিউএল এর জন্য আমাদের প্রশাসকের ব্যবহারকারীর নাম কোথায় ) এবং একবার ডাটাবেসের সাথে সংযুক্ত হয়ে আমাদের ডাটাবেস তৈরি করতে এবং এতে ফাইলটি পড়ার জন্য আদেশের প্রয়োজন:

create database new_db;
use new_db;
\. dumpfile.sql

ডাম্প ফাইল তৈরি করার সময় কোন বিকল্পগুলি ব্যবহার করা হয়েছিল সে অনুযায়ী বিশদগুলি পৃথক হবে।


19

ডিবিতে প্রবেশের জন্য কমান্ডটি চালান

 # mysql -u root -p 

ব্যবহারকারীর জন্য পাসওয়ার্ড লিখুন তারপরে একটি নতুন ডিবি তৈরি করুন

mysql> create database MynewDB;
mysql> exit

এবং প্রস্থান করুন। এই কমান্ডটি চালান

# mysql -u root -p  MynewDB < MynewDB.sql

তারপরে ডিবিতে প্রবেশ করুন এবং টাইপ করুন

mysql> show databases;
mysql> use MynewDB;
mysql> show tables;
mysql> exit

এটি ........ আপনার ডাম্প একটি ডিবি থেকে অন্য ডিবিতে পুনরুদ্ধার করা হবে

অন্যথায় ডাম্প পুনরুদ্ধারের বিকল্প বিকল্প আছে

# mysql -u root -p 

তারপরে ডিবিতে প্রবেশ করুন এবং টাইপ করুন

mysql> create database MynewDB;
mysql> show databases;
mysql> use MynewDB;
mysql> source MynewDB.sql;
mysql> show tables;
mysql> exit

14

আমি এই পদক্ষেপগুলি অনুসরণ করে কাজ করতে পেরেছি ...

  1. মাইএসকিউএল প্রশাসক খুলুন এবং সার্ভারে সংযোগ করুন

  2. বামদিকে "ক্যাটালগগুলি" নির্বাচন করুন

  3. নীচে-বাম বক্সে ডান ক্লিক করুন এবং "নতুন স্কিমা তৈরি করুন" নির্বাচন করুন

    মাইএসকিউএল প্রশাসক http://img204.imageshack.us/img204/7528/adminsx9.th.gif চিত্র প্রসারিত করুন

  4. নতুন স্কিমাটির নাম দিন (উদাহরণ: "ডিবিএন")

    মাইএসকিউএল নতুন স্কিমা http://img262.imageshack.us/img262/4374/newwa4.th.gif চিত্র বড় করুন

  5. উইন্ডোজ কমান্ড প্রম্পট (সেন্টিমিটার) খুলুন

    উইন্ডোজ কমান্ড প্রম্পট http://img206.imageshack.us/img206/941/startef7.th.gif চিত্র প্রসারিত করুন

  6. ডিরেক্টরিটি মাইএসকিউএল ইনস্টলেশন ফোল্ডারে পরিবর্তন করুন

  7. আদেশ কার্যকর করুন:

    mysql -u root -p dbn < C:\dbn_20080912.dump

    … যেখানে "রুট" ব্যবহারকারীর নাম, "ডিবিএন" হ'ল ডাটাবেসের নাম এবং "সি: b dbn_20080912.dump" হ'ল mysqldump .dump ফাইলের পথ / ফাইল নাম

    মাইএসকিউএল ডাম্প পুনরুদ্ধার কমান্ড লাইন http://img388.imageshack.us/img388/2489/cmdjx0.th.gif চিত্র প্রসারিত করুন

  8. উপভোগ করুন!


12

এসকিউএল / ডাম্প ফাইলগুলি আমদানির জন্য আপনি এসকিউএলজি 'এক্সিকিউট এসকিউএল স্ক্রিপ্ট' সরঞ্জাম ব্যবহার করতে পারেন।

এখানে চিত্র বর্ণনা লিখুন


11

আপনি যদি ডাম্পের অগ্রগতি দেখতে চান তবে এটি ব্যবহার করে দেখুন:

pv -i 1 -p -t -e /path/to/sql/dump | mysql -u USERNAME -p DATABASE_NAME

আপনার অবশ্যই অবশ্যই 'পিভি' ইনস্টল করা দরকার। এই কমান্ডটি শুধুমাত্র * নিক্সে কাজ করে।


10

পূর্ববর্তী উত্তরের একটি নির্দিষ্ট উদাহরণ হিসাবে:

আমার একটি ব্যাকআপ পুনরুদ্ধার করা দরকার যাতে এটি এসকিউএল সার্ভারে আমদানি / স্থানান্তর করতে পারি could আমি কেবল মাইএসকিএল ইনস্টল করেছি, তবে এটি পরিষেবা হিসাবে নিবন্ধভুক্ত করিনি বা আমার পথে এটি যুক্ত করিনি কারণ আমার এটি চালিয়ে যাওয়ার প্রয়োজন নেই।

আমি আমার ডাম্প ফাইলটি সি: \ কোড \ ডাম্প.এসকিএল-তে রাখার জন্য উইন্ডোজ এক্সপ্লোরার ব্যবহার করেছি। তারপরে শুরু মেনু আইটেম থেকে মাইএসকিএল খুলুন। ডিবি তৈরি করেছেন, তারপরে সোর্স কমান্ডটি পুরো পথ দিয়ে চালিয়েছেন:

mysql> create database temp
mysql> use temp
mysql> source c:\code\dump.sql

9

উইন্ডোজ ডাব্লু / মাইএসকিএল 5.5 এ পুনরুদ্ধার করতে লিনাক্সে নির্মিত 200 এমবি ডাম্প ফাইল ব্যবহার করে, আমি এর সাথে আরও সাফল্য পেয়েছি

source file.sql

এর চেয়ে মাইএসকিএল প্রম্পট থেকে যোগাযোগ করুন

mysql  < file.sql

কমান্ড লাইনে পৌঁছানোর কারণে 2006 এর কিছু ত্রুটি ঘটেছিল "সার্ভার চলে গেছে" (উইন্ডোতে)

অদ্ভুতভাবে, (mysql) ইনস্টলের সময় তৈরি পরিষেবাটি একটি my.ini ফাইলকে বোঝায় যা বিদ্যমান ছিল না। আমি my.ini এ "বৃহত" উদাহরণ ফাইলটি অনুলিপি করেছি যা আমি ইতিমধ্যে প্রস্তাবিত বৃদ্ধিগুলি দিয়ে সংশোধন করেছি।

আমার মান

[mysqld]
max_allowed_packet = 64M
interactive_timeout = 250
wait_timeout = 250

9
./mysql -u <username> -p <password> -h <host-name like localhost> <database-name> < db_dump-file

এটি অন্যান্য উত্তরগুলির একটি দম্পতির মতো এবং এটি আট বছরের পুরানো একটি প্রশ্ন।
miken32

2
যদিও নির্বাচিত উত্তরটি খুব ভাল, তবে এই উত্তরটি আমার পক্ষে আসলে আরও কার্যকর ছিল। আমার ডাটাবেস ফাইলটি বিশাল ছিল এবং এটি নোটপ্যাড ++ এ খোলা ছিল একটি দুঃস্বপ্ন, যে ক্ষেত্রে কমান্ড লাইন থেকে ডিবি নাম নির্দিষ্ট করতে সক্ষম হওয়াই আসলে আরও সহায়ক।
নজিব

mysqlকমান্ড অপশন এবং তাদের আর্গুমেন্ট মধ্যে শূণ্যস্থান গ্রহণ করে না। এটি অবশ্যই -u<username>পরিবর্তে হওয়া উচিত এবং পাসওয়ার্ডটি কমান্ড লাইনে মোটেই সরবরাহ করা উচিত নয়।
রোল্যান্ড ইলিগ

4

ব্যাকআপ / ডাম্প সেখান থেকে তৈরি না করা হলে আপনি মাইএসকিউএল অ্যাডমিনে রিস্টোর মেনুটি ব্যবহার করতে পারবেন না। যদিও এটি একটি শট মূল্য। যদি আপনি এর জন্য চেকবক্সের সাথে "ত্রুটিগুলি উপেক্ষা" করতে চান, তবে এটি বলবে এটি সফলভাবে সম্পন্ন হয়েছে, যদিও এটি পরিষ্কারভাবে কেবল সারিগুলির একটি ভগ্নাংশ আমদানি করে বাইরে বেরিয়ে আসে ... এটি একটি ডাম্পের সাথে রয়েছে, মনে রাখবেন।


2

উত্পন্ন এসকিউএল পুনরুদ্ধার করতে ওয়ান-লাইনার কমান্ড mysqldump

mysql -u <username> -p<password> -e "source <path to sql file>;"

1
উদাহরণস্বরূপmysql -u root -p12345678 -e "source /tmp/backup.sql;"
জোসেফ হারুশ

ঠিক এই জাতীয় পাসওয়ার্ড ব্যবহার করবেন না -p এবং কমান্ড লাইনটি আপনি এন্টার টিপানোর পরে আপনাকে একটি সুরক্ষিত পাসওয়ার্ড অনুরোধ জানাবে।
ব্যবহারকারী 2473015

আপনি যখন ইন্টারেক্টিভ প্রম্পট বহন করতে পারেন, আপনি সঠিক are যখন আপনি না করতে পারেন (উদাঃ
অবিরত

1

আপনি মাইএসকিউএল প্রশাসকের পুনরুদ্ধার মেনুটিও ব্যবহার করতে পারেন। আপনাকে কেবল ব্যাক-আপ ফাইলটি খুলতে হবে এবং তারপরে পুনরুদ্ধার বোতামটি ক্লিক করতে হবে।


0

কীভাবে মাইএসকিউএল ওয়ার্কবেঞ্চের সাথে মাইএসকিউএল ডেটাবেস পুনরুদ্ধার করবেন

আপনি ড্রপটি চালাতে এবং একটি ক্যোরি ট্যাবে কমান্ড তৈরি করতে পারেন।

স্কিমার উপস্থিতি যদি এটি বিদ্যমান থাকে তবে ফেলে দিন

DROP DATABASE `your_db_name`;

একটি নতুন স্কিমা তৈরি করুন

CREATE SCHEMA `your_db_name`;

আপনার ডাম্প ফাইলটি খুলুন

মাইএসকিউএলওর্কব্যাঞ্চ খুলুন এসকিএল ফাইল

  1. নতুন ক্যোয়ারী ট্যাব আইকনে একটি এসকিউএল স্ক্রিপ্ট খুলুন ক্লিক করুন এবং আপনার ডিবি ডাম্প ফাইলটি চয়ন করুন।
  2. তারপরে এসকিউএল স্ক্রিপ্ট রান করুন ক্লিক করুন ...
  3. এটি আপনাকে এসকিউএল ডাম্প স্ক্রিপ্টের প্রথম লাইনগুলির পূর্বরূপ দেখতে দেবে let
  4. তারপরে আপনি ডিফল্ট স্কিমা নামটি চয়ন করবেন
  5. পরবর্তী নির্বাচন ডিফল্ট অক্ষর সেট UTF8 সাধারণত একটি নিরাপদ বাজি, কিন্তু তোমার মত কিছু জন্য পূর্বরূপ লাইন দিকে তাকিয়ে থেকে এটা উপলব্ধি করতে সক্ষম হতে পারে character_set
  6. রান ক্লিক করুন
  7. বড় ডিবি পুনরুদ্ধার স্ক্রিপ্টগুলির জন্য ধৈর্য ধরুন এবং আপনার ড্রাইভের স্থানটি গলে যাওয়ার সাথে দেখুন watch 🎉

0

ধরে নিলাম আপনার ইতিমধ্যে ফাঁকা ডাটাবেস তৈরি হয়েছে, আপনি কমান্ড লাইন থেকে একটি ডাটাবেসও পুনরুদ্ধার করতে পারেন:

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