bashに1行のmysqlデータベースを作成します


24

bashの1行のコマンドで空のデータベースを作成することは可能ですか?

私の初心者の試みは失敗しました:

mysql -uroot $(create database mydatabase;)

私はする必要があります

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

回答:


32

@Nitrodistの答えは機能しますが、それは問題を過剰に設計しています。MySQLのコマンドラインクライアントは-e、次のように非常に便利なスイッチをサポートしています。

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

もちろん、そこに有効なSQLを代入できます。


申し訳ありませんが、さらに調査して回答を編集しました。
ニトロディスト

5
引用符は不要ですmysql -uroot -e "create database foo"
-IanVaughan

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。それらがなくても正常に動作します。ありがとう@IanVaughan
leymannx

14

MySQLのドキュメントによるとmysqlstdin

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

これを実現するには、プロセス置換を使用できます。

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

またはstdinmysql通常どおりにパイプすることができます:

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.