是否可以使用 bash 中的一行命令创建一个空数据库?
我的新手尝试失败了:
mysql -uroot $(create database mydatabase;)
我最终不得不
mysql -uroot
create database mydatabase;
exit;
答案1
@Nitrodist 的答案是可行的,但它对问题进行了过度设计。MySQL 的命令行客户端支持非常方便的-e
开关,如下所示:
mysql -uroot -e "create database 'foo'"
当然,您可以用任何有效的 SQL 替换它。
答案2
根据 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;"