回答:
@Nitrodistの答えは機能しますが、それは問題を過剰に設計しています。MySQLのコマンドラインクライアントは-e
、次のように非常に便利なスイッチをサポートしています。
mysql -uroot -e "create database 'foo'"
もちろん、そこに有効なSQLを代入できます。
mysql -uroot -e "create database foo"
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
MySQLのドキュメントによると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;"