在 bash 中使用一行创建 mysql 数据库

在 bash 中使用一行创建 mysql 数据库

是否可以使用 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;") 

或者你可以直接将其通过管道传输stdinmysql

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

无法亲自测试,但我认为这应该可行。

编辑:另一个选项是使用-e指定的选项这里,像这样:

shell> mysql -uroot -e "create database mydatabase;"

相关内容