কমান্ড প্রম্পট ব্যবহার করে কীভাবে একটি mysql ডাটাবেস রফতানি করবেন?


342

আমার একটি ডাটাবেস রয়েছে যা বেশ বড় তাই আমি কমান্ড প্রম্পট ব্যবহার করে এটি রফতানি করতে চাই তবে কীভাবে করব তা আমি জানি না।

আমি WAMP ব্যবহার করছি।


6
ডস? আপনি উইন্ডোজ 98 ব্যবহার করছেন? অথবা আপনি কি কমান্ড প্রম্পট বলতে চাইছেন?
jle

আপনি মোমবাতি ব্যবহার করছেন, আপনার রফতানি বিকল্প সহ পিএইচপিএমইডমিন থাকা উচিত
লার্স সি। ম্যাগনুসন

উত্তর:


536

আপনার কমান্ড লাইনটি mysql কমান্ডটি স্বীকৃতি দেয় কিনা তা প্রথমে পরীক্ষা করে দেখুন। কমান্ডে না গিয়ে টাইপ করুন:

set path=c:\wamp\bin\mysql\mysql5.1.36\bin

তারপরে আপনার ডাটাবেস রফতানি করতে এই কমান্ডটি ব্যবহার করুন:

mysqldump -u YourUser -p YourDatabaseName > wantedsqlfile.sql

আপনি তখন হবে ডাটাবেস পাসওয়ার্ডের জন্য অনুরোধ জানানো

এই কমান্ডটি কার্যকর করার সময় এটি আপনি বর্তমানে যে পথে রয়েছেন সেখানে ডেটাবেস রফতানি করে

দ্রষ্টব্য: আমদানি ও রফতানি উভয়ই সম্পর্কে কিছু বিশদ নির্দেশিকা এখানে রয়েছে


7
এটি ত্রুটি দেয় "মাইকিকিল্ডম্প: প্রাপ্তি ত্রুটি: 1049: ডাটাবেস নির্বাচন করার সময় অজানা ডেটাবেস 'থাসপাওয়ার্ড'" তবে আমি "-p ব্যবহারকারীর পাসওয়ার্ড" মুছে ফেলার সময় কাজ করেছি
আতা ড্যানি

11
@ AteşDanış তার মাঝে কোন স্থান -pএবং thepassword
চার্লস উড

44
আপনার কেবল ব্যবহার করা উচিত -pএবং তারপরে পাসওয়ার্ডের জন্য অনুরোধ করা হবে। এইভাবে আপনি আপনার পাসওয়ার্ড সংরক্ষণ করা এড়াতে যেমন.bash_history
নুয়াল

7
আমার জন্য, এই কমান্ডটি কাজ করে: mysqldump -u YourUser -p YourDatabaseName> yetsqlfile.sql (কমান্ডটি টাইপ করুন, এন্টার টিপুন এবং তারপরে পাসওয়ার্ড প্রবেশ করা হবে)।
শশী কাঁথ

3
কমান্ড লাইনে একটি পাসওয়ার্ড নির্দিষ্ট করা নিরাপদ হিসাবে বিবেচনা করা উচিত।
wappy

112

কেবল নিম্নলিখিত কমান্ডটি ব্যবহার করুন,

রপ্তানির জন্য:

mysqldump -u [user] -p [db_name] | gzip > [filename_to_compress.sql.gz] 

আমদানির জন্য:

gunzip < [compressed_filename.sql.gz]  | mysql -u [user] -p[password] [databasename] 

বিঃদ্রঃ: '-p' কীওয়ার্ড এবং আপনার পাসওয়ার্ডের মধ্যে কোনও স্থান নেই।


1
আমি মনে করি আপনি যে সত্যটি ডাব্লুএইচএএমপি ব্যবহার করছেন - উইন্ডোজ ... গানজিপ / জিজিপ উইন্ডোজের সাথে বান্ডিল নয় led কিছু স্টাফ ইনস্টল করার পরে আপনার কমান্ডটি চালানো সম্ভব হতে পারে তবে আমি মনে করি আপনি এই সত্যটি মিস করেছেন।
রলফ

2
সুনির্দিষ্টকরণের gzip -9ফলে ফলাফলটি কিছুটা ছোট হয় কারণ সর্বাধিক সংকোচনের ব্যবহার করা হয়।
আন্তোনকে

39

সব খোলা কম্যান্ড প্রম্প্ট তারপর ওপেন প্রথম বিন ডিরেক্টরিতে cmd কমান্ড (ঝ আপনি কার সাথে এসেছেন সচেতন আশা cmd কমান্ড কমান্ড) ফিরে যেতে বিন আপনার মাইএসকিউএল ফোল্ডার ডিরেক্টরির wamp প্রোগ্রাম ফাইল।

আপনার আদেশ প্রদান করুন

mysqldump -u db_username -p database_name > path_where_to_save_sql_file

এন্টার টিপুন সিস্টেমটি নির্দিষ্ট ডেটাবেস রফতানি করবে এবং প্রদত্ত স্থানে এসকিএল ফাইল তৈরি করবে।

আমি আশা করি আপনি এটি পেয়েছেন :) আপনার যদি কোন প্রশ্ন থাকে তবে দয়া করে আমাকে জানান।


আমার বন্ধু আমি প্রক্রিয়াটি কিছুটা ব্যাখ্যা করার চেষ্টা করেছি। তারপরে সরাসরি কমান্ড দিচ্ছেন
মিতেশ ওয়াঘেলা

38

ঠিক আছে আপনি নীচের কমান্ড ব্যবহার করতে পারেন,

mysqldump --databases --user=root --password your_db_name > export_into_db.sql

এবং উত্পন্ন ফাইল একই ডিরেক্টরিতে উপলভ্য হবে যেখানে আপনি এই আদেশটি চালিয়েছিলেন ran

আপনি এর জন্য সরকারী রেফারেন্সে আরও জানতে পারেন mysqldump: মাইএসকিউএল ডিবি আমদানি করুন

দ্রষ্টব্য : --databasesপরিবর্তে ব্যবহার করুন--database শেষটি আর সমর্থিত নয়।

উপভোগ করুন :)


4
যারা "লক টেবিলগুলি ব্যবহার করার সময় অ্যাক্সেস অস্বীকার করেছেন" এর মতো ত্রুটি পান তাদের জন্য আপনার কমান্ডটিতে "--সিংল-লেনদেন" পরামিতি যুক্ত করা উচিত।
Skyrpex

আমি একটি ত্রুটি পেয়েছি mysqldump: [ERROR] unknown option '--database'কিন্তু বুদ্ধি বাদ দিয়ে --databaseকাজ করেছে।
হিজদাভ

@ স্কাইরপেক্স ধন্যবাদ, এটিই আমি সমাধান খুঁজছিলাম।
মার্টিজন

22

এই পথে কমান্ড প্রম্পটে যান,

C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>

তারপরে আপনার ডাটাবেস রপ্তানি করতে এই আদেশটি দিন ( -p এর পরে কোনও স্থান নেই )

mysqldump -u[username] -p[userpassword] yourdatabase > [filepath]wantedsqlfile.sql


21

আপনার মাইএসকিএল উদাহরণটি এর সাথে সনাক্ত করুন:

which mysql

যদি এটি সঠিক হয় তবে নিম্নলিখিতগুলি দিয়ে রফতানি করুন (অন্যথায় আপনার ম্যাম্প ফোল্ডারে মাইএসকিএল উদাহরণে নেভিগেট করুন):

mysqldump -u [username] -p [password] [dbname] > filename.sql

এবং আপনি যদি একই সময়ে এটি জিপ করতে চান:

mysqldump -u [username] -p [password] [db] | gzip > filename.sql.gz

তারপরে আপনি সার্ভারের মধ্যে এই ফাইলটি সরাতে পারবেন:

scp user@xxx.xxx.xxx.xxx:/path_to_your_dump/filename.sql.gz your_detination_path/

(যেখানে xxx.xxx.xxx.xxx হল সার্ভারের আইপি ঠিকানা)

এবং তারপরে এটি আমদানি করুন:

gunzip filename.sql.gz | mysql -u [user] -p [password] [database]

4
আবার, ডব্লিউ এএমপি => উইন্ডোজ। যা একটি Linux কমান্ড। গানজিপ / জিজিপ উইন্ডোজের সাথে বান্ডিল হয় না - এবং উপলভ্য নাও হতে পারে। scp ... আপনি পয়েন্ট পেতে।
রলফ

Opentuned এর উত্তর দুর্দান্ত । একটি ছোট জিনিস হ'ল passwordকমান্ড লাইনটি থেকে আসলটি সরিয়ে ফেলছে: mysqldump -u [ব্যবহারকারীর নাম] -p [dbname]> filename.sql এটি পাসওয়ার্ডের জন্য আপনার ইতিহাস অনুসন্ধান করা লোকদের বাধা দেয়।
ভিনসেন্ট

1
@ ওপেনচুনড, লিনাক্স ফেটিশটির সাথে কী আছে?
পেসারিয়ার

-p [পাসওয়ার্ড] এর জন্য অবশ্যই কাছাকাছি থাকতে হবে যেমন: mysqldump -u tutorials -p'mypassword' -h 127.0.0.1 database_name > file_backup_database_name_.sql সতর্কতা: কমান্ড লাইন ইন্টারফেসে একটি পাসওয়ার্ড ব্যবহার করা নিরাপত্তাহীন হতে পারে।
মারওয়ান সেলিম

19

প্রক্রিয়াজাতকরণ, ফাংশন এবং ট্রিগারগুলিও রফতানি করতে --routinesপ্যারামিটার যুক্ত করুন:

mysqldump -u YourUser -p YourDatabaseName --routines > wantedsqlfile.sql


স্যুইচটি --routinesতফাত্ করে তোলে :) কেবলমাত্র প্রক্রিয়াগুলি, ফাংশন এবং ট্রিগারগুলি কীভাবে রফতানি করতে হবে তার কোনও ইঙ্গিত? যারা সুইচটি ভুলে গেছেন এবং "অ্যালগরিদম" ছাড়াই "খাঁটি" ডিবি রফতানি করেছেন তাদের জন্য :)
আন্তোনকে

--eventsবিটিডব্লিউ ইভেন্টটি শিডিউলার ইভেন্টগুলি ডাম্প করার জন্য স্যুইচ প্রয়োজন, এবং --skip-triggersনির্দিষ্ট না করা সত্ত্বেই ট্রিগারগুলি সর্বদা রফতানি করা হয় ( 7.4.5.3 অনুযায়ী সঞ্চিত প্রোগ্রামগুলি ডাম্পিং করা )
আন্তোনকে

10

আপনার ডাটাবেস রফতানি করতে এই আদেশটি দিন, এতে তারিখটিও অন্তর্ভুক্ত থাকবে

mysqldump -u[username] -p[userpassword] --databases yourdatabase | gzip > /home/pi/database_backup/database_`date '+%m-%d-%Y'`.sql.gz

(-p এর পরে কোনও স্থান নেই)


দ্রষ্টব্য, যে নির্দিষ্টকরণটি অন্য --databasesহিসাবে একটি ডিবিতে এসকিউএল আমদানি করার সময় কার্যকর হয় না CREATE DATABASE XYZ;এবং হিসাবে বিবৃতি সন্নিবেশ করবে USE XYZ;...
আন্তোনকে

8

আমি আমার ওয়্যাম্প সার্ভারটি ডি-তে ইনস্টল করেছি: ড্রাইভ করুন যাতে আপনাকে আপনার কমান্ড লাইন -> থেকে নীচের পথে যেতে হবে - (এবং আপনি যদি সিটিতে ইউআর ওয়্যাম্প ইনস্টল করে রেখেছেন তবে কেবল d: wtih c: এখানে প্রতিস্থাপন করুন)

D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button and select the currently working mysql version on your server if you have more than one mysql versions)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysqldump -u root -p password db_name > "d:\backupfile.sql"

এখানে রুটটি আমার পিএইচপিএমইডমিনের পাসওয়ার্ড হ'ল পিএইচপিএমইডমিনের পাসওয়ার্ড তাই আপনি যদি সেই জায়গায় রুটের জন্য কোনও পাসওয়ার্ড সেট না করে থাকেন তবে ডিবি_নেম হল ডেটাবেস (যার জন্য ডাটাবেসটি আপনার ব্যাকআপ নেবে), ব্যাকআপফাইল.এসকিউএল যে ফাইলটিতে আপনি আপনার ডাটাবেসের ইউআর ব্যাকআপ চান এবং যে ফাইলটি আপনার কম্পিউটারের অন্য যে কোনও জায়গায় থেকে ব্যাকআপ ফাইলের অবস্থান (d: \backfile.sql) পরিবর্তন করতে পারে file


আমি এটি করতে যেভাবে খুঁজে পেয়েছি তার মধ্যে এই উত্তরটি আমার পক্ষে কাজ করেছে। আমি মাইএসকিউএল সংস্করণ 5.6 ব্যবহার করছি, সুতরাং পাথটি ছিল ... কমান্ড প্রম্পটের জন্য \ মাইএসকিউএল \ মাইএসকিউএল সার্ভার 5.6 \ বিন। আপনাকে আপনার মাইএসকিউএল প্রশাসকের ব্যবহারকারীর নাম এবং পাসওয়ার্ড ব্যবহার করতে হবে, নির্দিষ্ট ডাটাবেসের জন্য নির্দিষ্ট করাগুলি কাজ করবে না। ধন্যবাদ শচীন। এমনকি v.5.6 এর জন্য মাইএসকিউএল ম্যানুয়ালটিতে থাকা নির্দেশাবলীও কার্যকর হয় না। বাক্য গঠনটি এখানে অসম্পূর্ণ।
সর্বাধিক পশ্চিম

এটা সত্যিই মধ্যে স্থান সঙ্গে কাজ করে -pএবং password?
ডেভিস


4

এই সমস্ত সমাধানের সাথে সমস্যা (ব্যবহার করে > রিডাইরেক্টর চরিত্রটি ) হ'ল আপনি আপনার স্ট্যাম্প থেকে ডাম্প লিখেন যা আপনার ডাটাবেসের কিছু অক্ষরের এনকোডিংকে ভেঙে দিতে পারে।

আপনার যদি একটি অক্ষর এনকোডিং সমস্যা থাকে। যেমন :

ত্রুটি 1064 (42000): আপনার এসকিউএল সিন্টেক্সে আপনার একটি ত্রুটি রয়েছে; কাছাকাছি ব্যবহারের জন্য সঠিক সিনট্যাক্সের জন্য আপনার মাইএসকিউএল সার্ভার সংস্করণের সাথে সম্পর্কিত ম্যানুয়ালটি পরীক্ষা করুন ...

তারপরে, আপনার অবশ্যই ব্যবহার করা উচিত-r বিকল্প ফাইলটি লিখতে।

মাইএসকিউএল

mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump.sql

ডকার ব্যবহার

docker exec --rm -v $pwd:dump -it mysql:5:7 mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump/dump.sql

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

আমরা উত্তর এখানে খুঁজে পেয়েছি

বিপরীতে, <আপনার ডেটাবেজে আপনার ডাম্প আমদানি করতে ব্যবহার করবেন না , আবার আপনার নন- utf8 অক্ষরগুলি পাস না হতে পারে; তবে উত্স বিকল্পটি পছন্দ করুন।

mysql -u user -pYourPasswordYouNowKnowHow --default-character-set=utf8 your-database
mysql> SET names 'utf8'
mysql> SOURCE dump.sql

1

বাক্য গঠন

(mysqldump.exe full path) -u (user name) -p (password) (database name) > (export database file full path)

উদাহরণ

c:>d:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe -u root -p mydbname > d:\mydb.sql

যেখানে d: amp wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exe আপনার আসল mysqldump.exe পাথ হবে, mydbname আপনি যে ডাটাবেসের রফতানি করতে চান তার নাম এবং d: d mydb.sql সেই পথ যেখানে আপনি রফতানি করা ডাটাবেস সংরক্ষণ করতে চান


0

আমি wamp সার্ভার ব্যবহার করেছি। আমি চেষ্টা করেছিলাম

c:\wamp\bin\mysql\mysql5.5.8\bin\mysqldump -uroot -p db_name > c:\somefolder\filename.sql

root mysql এর জন্য আমার ব্যবহারকারীর নাম এবং আপনার যদি কোনও পাসওয়ার্ড থাকে তবে এটির সাথে এটি নির্দিষ্ট করুন:

-p[yourpassword]

আশা করি এটা কাজ করবে.


--password প্রয়োজন যদি আপনি হিসাবে ভাল পাসওয়ার্ড টাইপ করতে Tring হয় ব্যবহার করা
Ercé

0

উইন্ডোজ ওএসের জন্য :

Mysqldump কমান্ড কার্যকর করার সময় আপনি যখন ত্রুটি 1064 mysql (42000) পান, বর্তমান টার্মিনাল থেকে প্রস্থান করুন। এবং mysqldump কমান্ড কার্যকর করুন।

mysql>exit 
c:\xampp\mysql\bin>mysqldump -uroot -p --databases [database_name] > name_for_export_db.sql

0

আমি ডিবিটির ডাম্প যা ডকারে চলছিল তা নেওয়ার চেষ্টা করছিলাম এবং এটি অর্জনের জন্য নীচের কমান্ডটি নিয়ে এসেছি:

ডকার <container_id/name>এক্সিকিউটিভ / ইউএসআর / বিন / মাইসকিल्डম্প- ইউ <db_username>- পাসওয়ার্ড =<db_password> db_name >।

আশাকরি এটা সাহায্য করবে!


-2

আপনি এই লিঙ্কটিতে প্রদত্ত টার্মিনাল থেকে কোনও ডাটাবেস রপ্তানি বা আমদানি করতে এই স্ক্রিপ্টটি ব্যবহার করতে পারেন : https://github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh

echo -e "Welcome to the import/export database utility\n"
echo -e "the default location of mysqldump file is: /opt/lampp/bin/mysqldump\n"
echo -e "the default location of mysql file is: /opt/lampp/bin/mysql\n"
read -p 'Would like you like to change the default location [y/n]: ' location_change
read -p "Please enter your username: " u_name
read -p 'Would you like to import or export a database: [import/export]: ' action
echo

mysqldump_location=/opt/lampp/bin/mysqldump
mysql_location=/opt/lampp/bin/mysql

if [ "$action" == "export" ]; then
    if [ "$location_change" == "y" ]; then
        read -p 'Give the location of mysqldump that you want to use: ' mysqldump_location
        echo
    else
        echo -e "Using default location of mysqldump\n"
    fi
    read -p 'Give the name of database in which you would like to export: ' db_name
    read -p 'Give the complete path of the .sql file in which you would like to export the database: ' sql_file
    $mysqldump_location -u $u_name -p $db_name > $sql_file
elif [ "$action" == "import" ]; then
    if [ "$location_change" == "y" ]; then
        read -p 'Give the location of mysql that you want to use: ' mysql_location
        echo
    else
        echo -e "Using default location of mysql\n"
    fi
    read -p 'Give the complete path of the .sql file you would like to import: ' sql_file
    read -p 'Give the name of database in which to import this file: ' db_name
    $mysql_location -u $u_name -p $db_name < $sql_file
else
    echo "please select a valid command"
fi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.