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


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.