如何在MySQL中导入.sql文件?


39

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

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

我首先创建了一个空数据库,其名称与.sql文件相同,但不起作用。我还尝试使用以下命令通过mysql命令客户端执行此操作:

mysqldump -u root database > file.sql 

但是它说我的SQL语法有错误。此外,我不知道必须设置file.sql的路径。


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

Answers:


49

出口:

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

进口:

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

9
-ppassword
。tombom 2012年

如果我没有密码怎么办?

然后跳过密码参数。
Kazimieras Aliulis

管道(mysqldump db -uuser -ppass|mysql new_db -uuser -ppass)无需使用中间文件。
Pacerier,2015年

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

28

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

mysql> use your_database_name;

mysql> source file.sql;

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

6

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

Juergen d的答案当然是正确的;但是,考虑到您的错误消息,您还可以在开始行中将其添加到SQL文件中,例如:

USE your_database_name;

这也应该完成工作,并让您在工作台下导入。

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


2

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

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

1

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

max_allowed_packet = 16M

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.