Bashで1行のコマンドで空のデータベースを作成することは可能ですか?
私の初心者の試みは失敗しました:
mysql -uroot $(create database mydatabase;)
私はしなければならないことになります
mysql -uroot
create database mydatabase;
exit;
@Nitrodistの答えは機能しますが、問題が過剰に設計されています。 MySQLのコマンドラインクライアントは、次のように非常に便利な-e
スイッチをサポートしています。
mysql -uroot -e "create database 'foo'"
もちろん、有効なSQLをそこに置き換えることができます。
MySQLのドキュメントによると、mysql
はstdin
からコマンドを取得できます
Shell> mysql -uroot < script.sql > output.tab
Process Substitution を使用してこれを達成できます:
Shell> mysql -uroot <(echo "create database mydatabase;")
または、通常はstdin
のmysql
にパイプするだけです。
Shell> echo "create database mydatabase;" | mysql -uroot
これを個人的にテストすることはできませんが、これはうまくいくと思います。
編集:別のオプションは-e
オプションを指定 here のように:
Shell> mysql -uroot -e "create database mydatabase;"