মাইএসকিউএল জিজ্ঞাসা দ্বারা ডাম্প


220

mysqldumpএকা করে করা কি সম্ভব SQL query?

আমি পুরো ডাটাবেসটি ডাম্প করতে চাইছি , যেমন phpmyadminআপনি যখন রফতানি করবেন doesSQL

উত্তর:


285

মাইএসকিএলড্প নয়, মাইএসকিএল ক্লিপ ...

mysql -e "select * from myTable" -u myuser -pxxxxxxxxx mydatabase

আপনি যদি চান তবে এটি কোনও ফাইলে পুনর্নির্দেশ করতে পারেন:

mysql -e "select * from myTable" -u myuser -pxxxxxxxx mydatabase > mydumpfile.txt

আপডেট: মূল পোস্টটি জিজ্ঞাসা করে তিনি ডাটাবেস থেকে ডাম্প করতে পারে কিনা তা জিজ্ঞাসা করা হয়েছিল। তিনি কী জিজ্ঞাসা করেছিলেন এবং তার অর্থ কী ছিল তা আলাদা। তিনি সত্যিই কেবল সমস্ত টেবিলগুলি মাইসকি্লডম্প করতে চেয়েছিলেন।

mysqldump --tables myTable --where="id < 1000"

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

3
যারা mysql -e পদ্ধতির চেষ্টা করছেন তাদের জন্য। আমার জন্য কাজ করতে আমাকে স্ক্রিপ্টটি কিছুটা কাস্টমাইজ করতে হয়েছিল। এটি চালনার সময় আপনাকে স্কয়ার পাসওয়ার্ড প্রবেশ করানো দরকার। mysql -e "টেবিল থেকে * নির্বাচন করুন WHERE কোয়েরি = 'এসডাসড'" -স রুট-পি --ড্যাটাসাবস = ডিবিএনএমএস>
টেক্সট.টিএক্সটি

13
আপনি সন্ধানের জন্য কেবলমাত্র একটি নতুন টেবিল তৈরি করতে পারেন (টেবিল নির্বাচন করুন), এবং তারপরে mysqldump দিয়ে সেই টেবিলটি ফেলে দিন। আপনি সহজেই পরে এটি পুনরুদ্ধার করতে পারেন।
কোয়ানো

1
যারা মাইসকিल्डম্প ব্যবহার করতে এবং ফাইলটি পুনরুদ্ধার করতে চান তাদের এখানে একবার দেখুন: stackoverflow.com/a/2431936/411786
সাইকো

2
ট্যাব-বিস্মৃত হিসাবে আউটপুট করার জন্য -B বিকল্পের সাথে মাইএসকিএল -e দিয়ে রফতানি করা ডেটা আমদানি করতে, mysqlimport --ignore -lines = 1 - ফিল্ডস-টার্মিনেটেড-বাই = '\ t' চালান। দেখুন: স্ট্যাকওভারফ্লো.com
কেভিন সীমানা

259

এই কাজ করা উচিত

mysqldump --databases X --tables Y --where="1 limit 1000000"

4
এর থেকে আরও ভাল উদাহরণ এমন কিছু হতে পারে যা আসলে যেখানে ক্লাউজের মতো দেখা যায় - যেমন - কোথাও = "মাইক্রোমাম <1000" - প্রতিটি টেবিলের প্রথম মিলিয়ন সারিগুলি অনুরোধ করা একটি আশ্চর্যজনক জিনিস বলে মনে হয়;)
আইজডব্লিউ

@ আইজডাব্লু আপনি যদি যা করতে চান তা যদি আপনার টেবিলের সহজেই পুনরায় সারণি-সক্ষম ব্যাকআপ নিতে হয় তবে সীমাবদ্ধতা ব্যতীত অন্য কোনও কিছুর জন্য আপনার সম্ভবত সম্ভবত কোনও ধারা নেই।
থমাস আহলে

3
@ সাগোথারন: ঠিক আছে, এটি কোনও জিজ্ঞাসা নয়। সম্ভবত তাই।
অরবিটে হালকা ঘোড়দৌড়

79
!! সতর্কতামূলক !! মাইএসকিএলডম্প রফতানি হওয়া ফাইলের শীর্ষে 'ড্রপ টেবিল' কমান্ড যুক্ত করে। এর অর্থ আপনি যদি আংশিক রফতানি করেন তবে তা পুনরায় করুন, আপনি সমস্ত কিছু হারাবেন। ঠিক আছে, আমি করেছি।
Tamlyn

34
হ্যাঁ, সংরক্ষিত ডেটা ফাইল থেকে পুনরুদ্ধার করার সময় আপনার টেবিলের সমস্ত ডেটা মুছতে না পারার জন্য, --no-create-infoবিকল্পটিতে যুক্ত করেছেন তা নিশ্চিত করুন । একটি উদাহরণের জন্য আমার উত্তর দেখুন ।
গ্যারি

71

আপনি এই জাতীয় সিএসভি হিসাবে একটি কোয়েরি ফেলে দিতে পারেন:

SELECT * from myTable
INTO OUTFILE '/tmp/querydump.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

8
যদি আমি একাধিক টেবিল ডাম্প করতে চাই What
SIFE

10
এটি মেশিনে একটি ফাইল তৈরি করে যেখানে মাইএসকিউএল ডাটাবেস চলছে। সুতরাং, আপনি যদি রিমোট কনসোল থেকে জিজ্ঞাসা করছেন তবে এই পদ্ধতিটি ব্যর্থ। দূরবর্তী কনসোল থেকেও যদি এটি করার কোনও উপায় থাকে তবে দয়া করে আমাকে এটি সম্পর্কে জানান।
kাকাইনাট

2
এটি ফাইলটি কোথায় সংরক্ষণ করবেন?
টেকলর্ড

1
@ ডকনাট আমি ধরে নিচ্ছি যে আপনি বোঝাতে চাইছেন টার্মিনাল কনসোলের মাধ্যমে একটি রিমোট কনসোল, scpসেক্ষেত্রে আপনি সংযোগ বন্ধ হওয়ার পরে ডাম্প করা ফাইলটি পুনরুদ্ধার করতে পারবেন । এখানে একটি উদাহরণ। scp user@remote-server.com:/tmp/querydump.csv ~/local.csv
লুক

এটি অনিরাপদ বলে মনে হচ্ছে: # 1290 - মাইএসকিউএল সার্ভারটি --secure-file-ખાનગીকরণ বিকল্পের সাথে চলছে তাই এটি এই বিবৃতিটি কার্যকর করতে পারে না
মাইকেপ

64

কোনও জিজ্ঞাসাটি ব্যবহার করে একটি সারণী ফেলে দিন:

mysqldump mydatabase mytable --where="mycolumn = myvalue" --no-create-info > data.sql

একটি সম্পূর্ণ টেবিল ডাম্প:

mysqldump mydatabase mytable > data.sql

মন্তব্য:

  • প্রতিস্থাপন mydatabase,mytable , এবং যেখানে আপনার পছন্দসই মান বিবৃতি।
  • ডিফল্ট হিসাবে, এর আউটপুট mysqldumpঅন্তর্ভুক্ত DROP TABLEএবং CREATE TABLEবিবৃতি হবে । সুতরাং, যদি আপনি সংরক্ষণ করা ডেটা ফাইল থেকে পুনরুদ্ধার করার সময় আপনার টেবিলের সমস্ত ডেটা মুছতে না চান তবে নিশ্চিত হয়ে নিন যে আপনি এটি ব্যবহার করেছেন--no-create-info বিকল্পটি ।
  • আপনি উপযুক্ত যোগ করার জন্য প্রয়োজন হতে পারে -h, -uএবং -pআপনার পছন্দসই ডাটাবেসের হোস্ট, ব্যবহারকারী এবং পাসওয়ার্ড যথাক্রমে উল্লেখ করার জন্য উপরোক্ত উদাহরণে কমান্ড অপশন।

38

আপনি অপেক্ষা করছেন এমন আউটপুট তৈরি করতে আপনি mysqldump এ - কোথাও বিকল্পটি ব্যবহার করতে পারেন:

mysqldump -u root -p test t1 --where="1=1 limit 100" > arquivo.sql

Test.t1 থেকে সর্বাধিক 100 টি সারি ডাটাবেস টেবিল থেকে ফেলে দেওয়া হবে।

চিয়ার্স, ডব্লিউবি


6

আপনি যদি কোনও ফাইলের মধ্যে আপনার শেষ এন পরিমাণের রেকর্ড রফতানি করতে চান তবে আপনি নিম্নলিখিতটি চালাতে পারেন:

mysqldump -u user -p -h localhost --where "1=1 ORDER BY id DESC LIMIT 100" database table > export_file.sql

উপরেরগুলি সর্বশেষ 100 টি রেকর্ডটি এক্সপোর্ট_ফিল.এসকিউএল-তে সংরক্ষণ করবে, আপনি যে টেবিলটি থেকে রফতানি করছেন তাতে স্বয়ংক্রিয় বর্ধিত আইডি কলাম রয়েছে ass

আপনাকে ব্যবহারকারী, লোকালহোস্ট, ডাটাবেস এবং টেবিলের মানগুলি পরিবর্তন করতে হবে। আপনি বিকল্পভাবে আইডি কলাম এবং এক্সপোর্ট ফাইলের নাম পরিবর্তন করতে পারেন।


5

মাইএসকিউএল ওয়ার্কবেঞ্চ জিওআইতে খুব সুন্দরভাবে এই বৈশিষ্ট্যটি রয়েছে। কেবল একটি ক্যোয়ারি চালান, রফতানি / আমদানির পাশের সংরক্ষণ আইকনটিতে ক্লিক করুন:

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

তারপরে তালিকার "এসকিউএল ইনসার্ট স্টেটমেন্টস (*। এসকিউএল)" নির্বাচন করুন।

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

একটি নাম লিখুন, সংরক্ষণ করুন ক্লিক করুন, টেবিলের নামটি নিশ্চিত করুন এবং আপনার ডাম্প ফাইল থাকবে।


3

এখানে অনেকগুলি সংমিশ্রণ আমার আসল ব্যবহারিক উদাহরণ, মিটারমিড এবং টাইমস্ট্যাম্প উভয়ের ভিত্তিতে রেকর্ড নির্বাচন করা records আমার এই আদেশটি বছরের পর বছর ধরে প্রয়োজন। সত্যিই দ্রুত কার্যকর করা।

mysqldump -uuser -ppassword main_dbo trHourly --where="MeterID =5406 AND TIMESTAMP<'2014-10-13 05:00:00'" --no-create-info --skip-extended-insert | grep  '^INSERT' > 5406.sql

-1

mysql প্রশ্নের ফলাফল কমান্ড লাইনটি রফতানি করুন port

mysql -h120.26.133.63 -umiyadb -proot123 miya -e "select * from user where id=1" > mydumpfile.txt

এটি উবুন্টু, কমান্ডে আমার জন্য কাজ করছে: mysql -h লোকালহোস্ট -u মূল -p dbname -e "ব্যবহারকারীদের থেকে আইডি = 1 নির্বাচন করুন * যেখানে কর্মীদের আইডি = 1" --xML> / var / www / থেকে নির্বাচন করুন * এইচটিএমএল / প্রকল্প / ব্যাকআপ / ডিবি.এক্সএমএল
রমেশ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.