我有一个我想从命令行上传的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
答案 0 :(得分:3)
.sql
文件通常只是一系列SQL DDL / DML查询。如果它是由mysqldump创建的,那么它应该包含从头开始重新创建数据库所需的一切,包括必要的create db
和create table
查询。
如果它们不存在,您可以通过简单的文件串联/修改手动将它们自动添加到文件的顶部,例如。
cat 'create database foo;' > new.sql
cat otherstuff.sql >> new.sql
mysql < new.sql
答案 1 :(得分:3)
如果使用--databases
或--all-databases
选项生成mysqldump文件,则会将正确的CREATE DATABASE语句放入转储文件中。