我试图使用MySQL Workbench导入.sql文件,但出现此错误:

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


我首先创建了一个空数据库,其名称与.db相同。 sql文件,但它不起作用。
我也尝试使用以下命令与mysql命令客户端一起使用它:我的SQL语法错误。此外,我不知道我必须设置file.sql的路径。

评论

我可以使用下面的mysql> use mydatabase导入mysqldump; mysql>源sql_file.sql;

#1 楼

Juergen d的答案当然是正确的;但是,考虑到您的错误消息,您也可以将其添加到SQL文件的开头,例如:工作台。

使用mysqldump时,导出的文件将保存在当前文件夹中。沿着什么路径都没关系。仅当从命令行导入时,您需要位于同一文件夹或指定文件路径。但是,当您使用可视工具(如Workbench)时,情况并非如此,无论如何您都需要从文件夹树中选择文件。

#2 楼

出口:

mysqldump -u username –-password=your_password database_name > file.sql


进口:

mysql -u username –-password=your_password database_name < file.sql 


评论


-p和密码之间必须没有空格

– tombom
2012年9月14日上午11:47

如果我没有密码怎么办?

–芭芭拉·梦想家
2012年9月14日上午11:57

然后跳过密码参数。

– Kazimieras Aliulis
13年5月31日晚上10:35

管道(mysqldump db -uuser -ppass | mysql new_db -uuser -ppass)消除了使用中间文件的需要。

–起搏器
15-10-12在10:05



我认为数据库必须在MySQL中存在才能正常工作。

–本体
16年5月5日在2:02

#3 楼

您还可以将.sql文件作为已连接的用户导入数据库方式:

mysql> use your_database_name;

mysql> source file.sql;


评论


源D:/path/file.sql;作品精湛!记住前斜杠而不是后斜杠。

–神庙
2015年1月9日在11:08

#4 楼

source <filename>不起作用时,导入转储文件的另一种方法是执行以下操作:

转储

~> mysqldump --user=<user> --password=<password> <db_name> > <export_file_name>.sql

导入

> mysql -u <user> -p <pass> <db_name>
mysql> USE <db_name>;  (if you didn't already select)
mysql> \. ~/<export_file_name>.sql


#5 楼

您缺少命令中的密码。请使用以下内容。

mysql --u [username] --password=[password] [database name] < [dump file]


#6 楼

对于Windows,在MySQL服务器安装目录(例如C:\Program Files\MySQL\MySQL Server 5.5)的my.ini file中,在服务器部分的[mysqld]下添加以下行:

max_allowed_packet = 16M


并保存更改。 (如果不允许保存,请复制并粘贴到桌面上,然后再次编辑,然后将其粘贴到相同位置。)

之后,重新启动MySQL服务器。