ব্যাশে এক লাইনের সাথে mysql ডাটাবেস তৈরি করুন


24

ব্যাশে এক লাইন কমান্ডের সাহায্যে একটি খালি ডাটাবেস তৈরি করা সম্ভব?

আমার নবাগত প্রচেষ্টা ব্যর্থ হয়েছে:

mysql -uroot $(create database mydatabase;)

আমি শেষ পর্যন্ত

  • mysql -uroot
  • create database mydatabase;
  • exit;

উত্তর:


32

@ নাইট্রোডিস্টের উত্তরটি কার্যকর হবে, তবে সমস্যাটি ওভার ইঞ্জিনিয়ারিংয়ের মধ্যে রয়েছে। মাইএসকিউএল-র কমান্ড-লাইন ক্লায়েন্টটি খুব কার্যকরী -eসুইচটিকে সমর্থন করে , যেমন:

mysql -uroot -e "create database 'foo'"

আপনি অবশ্যই সেখানে কোনও বৈধ এসকিউএল প্রতিস্থাপন করতে পারেন।


দুঃখিত আমি আরও উত্তর পরে আমার উত্তর সম্পাদনা।
নাইট্রোডিস্ট

5
উদ্ধৃতিগুলি আবশ্যক নয়mysql -uroot -e "create database foo"
ইয়ানভোগান

1
হ্যাঁ, অতিরিক্ত একক উদ্ধৃতি ব্যবহার করে আমাকে একটি দিয়েছে ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''foo'' at line 1। তাদের ছাড়া এটি ঠিক কাজ করে। ধন্যবাদ @ ইয়ানভোগান
লেম্যানমান্স

14

মাইএসকিউএল এর ডকুমেন্টেশন অনুযায়ী, mysqlকমান্ড নিতে পারেনstdin

shell> mysql -uroot < script.sql > output.tab

আপনি এটি সম্পাদন করতে প্রক্রিয়া বিকল্প ব্যবহার করতে পারেন :

shell> mysql -uroot <(echo "create database mydatabase;") 

অথবা আপনি শুধু এটা নল করতে পারেন stdinএর mysqlস্বাভাবিকভাবে:

shell> echo "create database mydatabase;" | mysql -uroot

এটি ব্যক্তিগতভাবে পরীক্ষা করা যায় না, তবে আমি মনে করি এটি কাজ করা উচিত।

সম্পাদনা করুন: অন্য বিকল্পটি এখানে-e বিকল্প হিসাবে নির্দিষ্ট করা বিকল্পটি ব্যবহার করতে হবে :

shell> mysql -uroot -e "create database mydatabase;"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.