আমি কীভাবে আমার ডাটাবেসে একটি sql.gz ফাইল লোড করব? (আমদানি)


150

আমি সরাসরি একটি জিএসপিএল এসকিউএল ফাইলটি মাইএসকিএলে সরাসরি আমদানির চেষ্টা করছি। এটা কি সঠিক পথ?

mysql -uroot -ppassword mydb > myfile.sql.gz

14
এমনকি প্রশ্নের জিজিপ দিকটি উপেক্ষা করেও আপনার তীরটি ভুল পথে নির্দেশ করছে ...
ম্যাট ফ্লেচার

উত্তর:


238
zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database

>mysqlকমান্ডের আউটপুট stdoutফাইলটিতে লিখবে myfile.sql.gzযা সম্ভবত আপনি চান তা নয়। অতিরিক্তভাবে, এই আদেশটি আপনাকে মাইএসকিউএল ব্যবহারকারী "রুট" এর পাসওয়ার্ডের জন্য অনুরোধ করবে।


15
একটি ভাল সুরক্ষা অনুশীলন হিসাবে, আমি আমার পাসওয়ার্ড কমান্ড লাইনে রেখে দিতাম, আমি মাইএসকিএলকে এটি চাইতে চাইতাম।
অধ্যাপক মরিয়ার্টি

9
বা আরও ভাল: ~/.my.cnfশংসাপত্র দিয়ে তৈরি করুন। ;)
জোসচি

5
@ প্রফুল হিসাবে মরিয়ার্টি ব্যাখ্যা করেছেন, আপনি পাসওয়ার্ডটি ব্যবহার না করার জন্য আদেশটি পরিবর্তন করতে পারেন zcat /path/to/file.sql.gz | mysql -u 'root' -p your_database। এটি সর্বশেষ প্যারামিটারটি আপনি যে ডেটাবেসটি ব্যবহার করতে চান তা আপনার পাসওয়ার্ড নয় know
বাফ্রোমকা

6
@ অধ্যাপক মরিয়ার্তির মন্তব্যটিকে কিছুটা সংশোধন করার জন্য, একটি ভাল সুরক্ষা অনুশীলন হ'ল কমান্ড লাইনে (যেখানে এটি ইতিহাসে সংরক্ষণ করা হবে, বা আপনার কাঁধের উপরে দেখা যাবে) আমার পাসওয়ার্ড না দেওয়া এবং মাইএসকিউএলকে এটি চাইতে দেওয়া উচিত। একা -p পতাকাটি MySQL কে পাসওয়ার্ডের জন্য প্রম্পটে জিজ্ঞাসা করবে।
জর্জ

4
জবাবদিহি করা ডেটাবেস ডাম্পকে সংকুচিত করে এমন কোনও কিছুর জন্য +1
দিমিত্রি ডিবি

81

একটি sql.gz ফাইল আমদানির সময় একটি অগ্রগতি বার প্রদর্শন করতে, ডাউনলোড করুন pvএবং নিম্নলিখিতটি ব্যবহার করুন:

pv mydump.sql.gz | gunzip | mysql -u root -p

CentOS / RHEL এ আপনি পিভি ইনস্টল করতে পারেন yum install pv

Debian / Ubuntu- সালে apt-get install pv

ম্যাক ইন, brew install pv


2
pvমনে হয় উবুন্টু রেপোসেও রয়েছে (কমপক্ষে 12.04 এলটিএসে এটি রয়েছে) তবে এটি পাওয়ার জন্য আপনাকে আবার করতে sudo apt-get install pvহবে। ধন্যবাদ বাঞ্জার, এটি বড় ডেটাবেস আমদানির জন্য উপযুক্ত!
toon81

আমাকে পিভি mydump.sql.gz চালাতে হয়েছিল গানজিপ | mysql -u মূল_আপনার ডেটাবেস_নাম। কারণ আমি টেবিলগুলি আমদানি করছিলাম এবং আমার রুট ব্যবহারকারীর জন্য আমার কাছে কোনও পাসওয়ার্ড সেট নেই
ক্রিশ্চিয়ানো মেনডোনাসা

ম্যাক,brew install pv
স্কোর

54

সবচেয়ে সহজ উপায় হ'ল আমদানির আগে ডাটাবেস ফাইলটি আনজিপ করা। @ প্রফাই দ্বারা উল্লিখিত হিসাবে মরিয়ার্টি আপনাকে কমান্ডটিতে পাসওয়ার্ড নির্দিষ্ট করা উচিত নয় (আপনাকে পাসওয়ার্ড জিজ্ঞাসা করা হবে)) ওয়েবচিটশিট থেকে নেওয়া এই আদেশটি একসাথে আনজিপ এবং ডাটাবেস আমদানি করবে:

gunzip < myfile.sql.gz | mysql -u root -p mydb

1
এছাড়াও, আমদানির আগে mydb তৈরি করা দরকার। এটি আপনার জন্য ডিবি তৈরি করে না।
সিদ্ধার্থ

আমি 10 gunzipজিপি সংক্ষেপিত ফাইলটিতে আমার পাইপ পেয়েছি যার ফলে আমার আমদানি হিমায়িত হয়েছে। নিশ্চিত নয় যে এটি মেমোরির বাধা বা কোনও কিছুর কারণে হয়েছে তবে আমি ভবিষ্যতে একবারে একটি পদক্ষেপ করার পক্ষে ভুল করছি।
রায়ান টাক

@ রায়ানটাক যা এই ধরণের প্রক্রিয়া সীমাবদ্ধ করে দিচ্ছে :)
আইসিসি ৯9

@ সিদ্ধার্থ এটি স্কেল ডাম্প ফাইলের উপর নির্ভর করে। কখনও কখনও তারা ডাটাবেস বিবৃতি তৈরি অন্তর্ভুক্ত।
রোবি

@ রুবি যে অর্থ দেয়।
সিদ্ধার্থ

12

যদি আপনি ত্রুটিটি পেয়ে থাকেন zcat, যাতে ত্রুটি বার্তায় অতিরিক্ত প্রত্যয় সহ ফাইলটির নাম থাকে তবে .Zতার gzcatপরিবর্তে https://stackoverflow.com/questions/296717/zcat-wont-unzip-files-properly বর্ণিত হিসাবে ব্যবহার করার চেষ্টা করুন


5

ম্যাকোজে, আমি এটি ব্যবহার করেছি:

zcat < [Database].sql.gz | mysql -u root -p [Database Name in MySQL]

আপনার পাসওয়ার্ড লিখুন, এবং ভয়েলা!


4

এসকিউএল ফাইলটিতে কোনও ইউএসই-বিবৃতি আছে কিনা তাও পরীক্ষা করে দেখুন। কমান্ড লাইনে ডাটাবেস উল্লেখ করা কোনও গ্যারান্টি দেয় না যে এসকিউএল ফাইলের মধ্যে আলাদা গন্তব্য নির্দিষ্ট করা থাকলে সেখানে ডেটা শেষ হবে।


2
আপনি ঠিক তাই মত কমান্ড প্রসারিত করা প্রয়োজন: pv mydump.sql.gz | gunzip | mysql -u root -p your_database। গৃহীত উত্তর এই পদ্ধতির ব্যবহার করে।
বফ্রোমকা

1

জন্য Bzip2 সংকুচিত ফাইল (.sql.bz2), ব্যবহার করুন:

bzcat <file> | mysql -u <user> -p <database>

অথবা

pv <file> | bunzip2 | mysql -u <user> -p <database>

অগ্রগতি বার দেখতে।


0

আপনি কমান্ডের -c, --stdout, --to-stdoutবিকল্পটি ব্যবহার করতে পারেনgunzip

উদাহরণ স্বরূপ:

gunzip -c file.sql.gz | mysql -u root -p database
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.