2011-03-01 140 views
165

我有一个数据库`nitm`。我没有在那里创建任何表格。但我有一个包含数据库所有必要数据的sql文件。该文件是`C:\驱动器`中的`nitm.sql`。这个文件的大小约为103M。我正在使用wamp服务器。导入SQL文件到mysql

我已经在mysql控制台中使用以下语法来导入文件。

mysql>c:/nitm.sql; 

但是这没有奏效。

+0

请参阅https://stackoverflow.com/questions/17666249/how-to-import-an-sql-file-using-the-command-line-in-mysql – 2017-06-22 14:22:04

+0

检查https://stackoverflow.com/questions/11407349/mysql-how-to-export-and-import-a-sql-file-from-command-line – AZinkey 2017-11-11 13:07:59

回答

86

最后,我解决了这个问题。我将`nitm.sql`文件放在`mysql`文件夹的bin文件中,并使用以下语法。

C:\wamp\bin\mysql\mysql5.0.51b\bin>mysql -u root nitm < nitm.sql 

这个工作。

+6

这不是从OPT问的mysql控制台问的,而是从控制台进入mysql的。 Robert Anthony Tribiana的答案确实介绍了如何从mysql控制台执行此操作。 – 2014-06-19 09:10:19

+0

这不是解决问题的确切方法,它不是解决方案。 – 2015-11-12 10:50:40

+2

你们知道这是回答这个问题的OP吗? – Wes 2016-02-01 14:20:38

2
从命令行

(CMD.EXE,而不是从内mysql外壳)试着这么做:

type c:/nite.sql | mysql -uuser -ppassword dbname 
+0

我还没有为数据库创建任何密码,所以它在密码字段中是空白的。我已经使用了上面的语法,像这样:c:/nitm.sql | mysql -u root -p nitm但是这也不起作用。你能帮助我更多吗? – kushalbhaktajoshi 2011-03-01 10:14:40

+0

只是省略-p然后。 – 2011-03-01 10:16:04

+0

省略-p也不起作用。这种抛出错误,如'c:'不被识别为内部或外部命令,可操作程序或批处理文件。 – kushalbhaktajoshi 2011-03-01 10:29:05

8

你几乎没有 使用

mysql> \. c:/nitm.sql; 

您也可以通过

访问帮助
mysql> \? 
+0

这没有奏效。当我使用mysql> \。 C:/nitm.sql; ,它抛出错误,如无法打开文件'c:\ nitm.sql;',错误:2 – kushalbhaktajoshi 2011-03-01 10:20:42

+0

你有没有尝试过这种变化?某些应用程序尊重C:\ nitm.sql – Lmwangi 2011-03-01 10:25:07

+0

另请注意,最后的分号不是必需的。所以删除它。另一种选择是'cd c:'然后尝试“\。nitm.sql” – Lmwangi 2011-03-01 10:26:01

1
mysql>c:/nitm.sql; 

这会将mysql命令的输出写入'nitm.sql;' (什么是“;”怎么办呢?)假设你有原始文件的副本(你可以覆盖它之前),则:

mysql < c:/nitm.sql 
+0

这也没有工作。它抛出错误,如ERROR 1064 <42000>:您的SQL语法有错误;检查与您的MySql服务器版本相对应的手册,在第1行'mysql kushalbhaktajoshi 2011-03-01 10:24:17

2

是否转储包含未在你的版本支持的功能MySQL的?您也可以尝试删除开始(和结尾)的MySQL注释的SET语句。

我不知道你的转储是否来自Linux版本的MySQL(行结尾)?

+0

我已经删除了mysql注释的SET语句。但仍然发生错误。 – kushalbhaktajoshi 2011-03-01 11:15:44

+0

您可以尝试登录到MySQL命令shell并使用then语句:“source c:\ nite.sql”。不要忘记选择正确的数据库。 – Maickel 2011-03-01 12:01:23

+0

我真的很感谢你的努力。谢谢。 – kushalbhaktajoshi 2011-03-01 12:18:49

49

如果你正在使用wamp,你可以试试这个。首先键入use your_Database_name

  1. 单击您的wamp服务器图标,然后查找MYSQL > MSQL Console然后运行它。

  2. 如果你没有密码,只需点击进入,然后键入:

    mysql> use database_name; 
    mysql> source location_of_your_file; 
    

    如果你有密码,你会PROMT输入密码。先输入您的密码,然后键入:

    mysql> use database_name; 
    mysql> source location_of_your_file; 
    

location_of_your_file应该像C:\mydb.sql

所以称道的是的mysql>源C:\ mydb.sql;

这种导入sql转储对BIG SQL FILE很有帮助。

我复制我的文件mydb.sq到目录C:。它应该是大写C:为了运行

,就是这样。

+0

谢谢,谢谢,谢谢 – celwell 2013-10-23 02:56:27

+1

这个答案似乎是WAMP特有的,而显示的代码是从任何运行MySQL的环境,您可以通过终端或控制台访问MySQL。 – 2014-06-19 09:12:56

371

从MySQL控制台:

的mysql>use DATABASE_NAME;

的mysql>source path/to/file.sql;


确保有,如果你指的是相对路径路径前没有斜杠..我花了一段时间才意识到这一点!笑

+35

如果您正在创建相对参考,则不需要路径前的斜杠。如果你从根目录开始,你将会,例如'/ home/user/file.sql' – 2013-08-15 21:41:23

+5

可惜没有办法给收藏夹添加答案:( – baldrs 2013-12-17 18:44:49

+3

在Chrome中它们被称为书签,你可以点击地址栏中的明星;) – Andrew 2013-12-29 00:17:35

9

如果您使用的XAMPP

C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql 
2

我已经安装WAMP的服务器在d:驱动器,以便我只好去以下路径从乌尔命令行 - >(如果u必须安装乌尔WAMP在C:驱动器则只需更换d:wtih C:在这里)

D:\>cd wamp 
D:\wamp>cd bin 
D:\wamp\bin>cd mysql 
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button) 
D:\wamp\bin\mysql\mysql5.5.8>cd bin 
D:\wamp\bin\mysql\mysql5.5.8\bin>mysql -u root -p password db_name < "d:\backupfile.sql" 

这里是我的phpmyadmin 密码的用户是phpMyAdmin的密码,使密码如果你还没有设置任何密码的root根本没有在那个地方, db_name是数据库(为你的数据库你的备份) ,backupfile.sql是你想要你的数据库备份的文件您也可以将备份文件位置(d:\ backupfile.sql)从您的计算机上的任何其他位置更改为

24

在Windows中,如果上述建议给出错误(文件未找到或未知的数据库)要向前双斜线:

在MySQL控制台:

mysql> use DATABASE_NAME; 

mysql> source C://path//to//file.sql; 
+0

在我的Windows机器上为我工作的单向正斜杠。 – 2016-05-16 18:08:25

3

在Linux中,我在启动mysql之前导航到包含.sql文件的目录。系统光标现在与文件位于同一位置,您不需要路径。使用source myData.sql将我的日期替换为文件的名称。

cd whatever directory 

mysql - p 

连接targetDB

source myData.sql 

完成

3

不要忘记使用

charset utf8 

如果您的SQL文件是UTF-8 :)

所以,你需要做的:

cmd.exe

mysql -u root

mysql> charset utf8

mysql> use mydbname

mysql> source C:\myfolder\myfile.sql

祝你好运))

0

在Windows操作系统下的命令对我的作品。

mysql>Use <DatabaseName> 
mysql>SOURCE C:/data/ScriptFile.sql; 

文件名周围没有单引号或双引号。路径将包含'/'而不是'\'。

16

好吧,我使用Linux,但我认为这也适用于Windows。 您可以直接从命令提示符

> mysql -u <user name> -p<password> <database name> < sqlfilename.sql 

或者从MySQL提示中,你可以使用这样做:

mysql>source sqlfilename.sql 

但是这两种方法都在他们显示结果自己的利益。 在第一种方法中,脚本在遇到错误时立即退出。而更好的部分是,它会告诉你发生错误的源文件中的确切行号。但是,它只显示错误。如果没有遇到任何错误,脚本将显示NOTHING。这可能有点不安。因为你经常用一堆命令运行脚本。

现在第二种方法(从mysql提示符中)具有这样的好处,即它显示脚本中每个不同MySQL命令的消息。如果遇到错误,它将显示mysql错误消息,但会继续执行脚本。这可能很好,因为在再次运行脚本之前,您可以返回并修复所有错误。缺点是它不会在遇到错误的脚本中显示行号。这可能有点痛苦。但是,错误消息是描述性的,所以你可以找出问题所在。例如,我比较喜欢直接从操作系统命令行方式。

4

对于XAMPP上的本地主机。打开cmd窗口并键入

cd C:\xampp\mysql\bin 
mysql.exe -u root -p 

注意!后-p 没有分号输入您的密码,然后键入

use database_name; 

选择您需要的数据库。

检查,如果你的表是有

show tables; 

从您的SQL文件

source sqlfile.sql; 

我已经把我的文件基于C导入:\ XAMPP \ mysql的\ BIN位置,以便不与sql文件的位置混淆。

1

出口特定数据库间

djimi:> mysqldump --user=root --host=localhost --port=3306 --password=test -B CCR KIT >ccr_kit_local.sql 

这将出口CCR和KIT数据库...

导入全部出口DB到特定的MySQL实例(你必须要在您的转储文件)

djimi:> mysql --user=root --host=localhost --port=3306 --password=test < ccr_kit_local.sql 
3

尝试:

mysql -u username -p database_name < file.sql 

检查MySQL Options

注意:最好使用SQL文件file.sql的完整路径。