使用sql文件导入在一行中创建MySQL数据库

时间:2016-10-17 20:38:20

标签: mysql

我有一个我想从命令行上传的sql文件。为此,我首先需要进入MySQL并创建数据库

mysql> create database myDB;

然后从命令行调用以下内容:

mysql -u username -p myDB < myDB.sql

有没有办法在命令行的一行中完成所有操作?

我尝试将以下行(和各种组合)添加到myDB.sql文件的开头:

create database `myDB`;
use `myDB`;

然后运行

mysql -u username -p < myDB.sql

但这不起作用。

ERROR 1046 (3D000) at line 7: No database selected

2 个答案:

答案 0 :(得分:3)

.sql文件通常只是一系列SQL DDL / DML查询。如果它是由mysqldump创建的,那么它应该包含从头开始重新创建数据库所需的一切,包括必要的create dbcreate table查询。

如果它们不存在,您可以通过简单的文件串联/修改手动将它们自动添加到文件的顶部,例如。

cat 'create database foo;' > new.sql
cat otherstuff.sql >> new.sql
mysql < new.sql

答案 1 :(得分:3)

如果使用--databases--all-databases选项生成mysqldump文件,则会将正确的CREATE DATABASE语句放入转储文件中。