পাইপ গানজিপ এবং মাইএসকিএল থেকে ডাম্পকে বন্দুকীকরণ করতে এবং এটি আমদানি করতে


27

আমার কাছে একটি .gz sql ডাম্প ফাইল রয়েছে (উদাহরণ: foo.sql.gz) যা আমি ক্লাসিক মাইএসকিএল কমান্ড দিয়ে আমার ডাটাবেসে আমদানি করতে চাই।

gunzip -c foo.sql.gz > foo.sql

mysql -uroot -ppassword foo < foo.sql

foo হ'ল ডেটাবেস।

আমি কীভাবে এই দুটি কমান্ডকে এককভাবে পাইপ করতে পারি?

চেষ্টা করা হয়েছে

gunzip -c foo.sql.gz | mysql -uroot -ppassword foo

কিন্তু কাজ করে না বলে মনে হয়; আমি পাইgzip: stdout: Broken pipe


6
FYI আপনি সত্যিই কমান্ড লাইনে mysql পাসওয়ার্ডটি পাস করতে চান না। এটি all / .bash_History এ সকলের জন্য দেখার জন্য সঞ্চিত হয়। আপনি যদি স্রেফ -p রাখেন তবে এটি আপনাকে আপনার পাসওয়ার্ডটি প্রবেশের অনুরোধ জানাবে যা অনেক বেশি নিরাপদ (এবং
— কোনওভাবে

1
<< foo.sql.gz | যদি আপনি orignal কমান্ড কাজ করে মাইএসকিউএল -uroot -ppassword foo বিন্যাস
— পাঠ্য

উত্তর:


40
zcat foo.sql.gz | mysql -uroot -ppassword foo

এটি foo.sql.gzযেমন হয় তেমনি চলে যাবে ।


1
গতির দিক থেকে এটি গানজিপ অ্যান্ড অ্যান্ড মাইএসকিএল-ই "আনজিপড.এসকিউএল ব্যবহার করুন" এর চেয়ে অনেক ধীর গতিতে কাজ করে।
— পোদারোক


2

অন্যান্য সমস্ত উত্তর কমান্ডে পাসওয়ার্ড লেখার পরামর্শ দিচ্ছে। এটি একটি খুব খারাপ অনুশীলন এবং সুরক্ষা ঝুঁকিপূর্ণ। দয়া করে এটি করবেন না ।

আপনি কমান্ডের মধ্যে পাসওয়ার্ডটি খালি রাখতে পারেন, এটি আপনাকে ইন্টারেক্টিভভাবে পাসওয়ার্ডটি প্রবেশ করতে বলবে। ব্যাশ ইতিহাসে এইভাবে পাসওয়ার্ডটি সংরক্ষণ করা হয়নি।

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