在Windows平台上进行MySQL导入

28

我有一个名为db.sql的MySQL文件,我尝试使用以下命令导入它:

mysql -uroot -p[password] db < db.sql

我所得到的只是MySQL命令列表,或者我会收到语法错误。奇怪的是,我上周使用过这个文件,据我所知,我现在也是同样的方式在操作。

我创建了数据库,在命令行中输入上述内容,但它不起作用。我尝试了在mysql内部和命令行中,似乎什么都不起作用。

在Windows或MySQL5中,我是否应该采取不同的方法?我不知道我第一次是如何让它工作的...

TIA

7个回答

62

可以尝试使用这个替代方案:

mysql -u root -p
(prompts for password)
use db;
source db.sql

3
你是我的英雄。完美地运行了。 - user80151
1
不要忘记将.sql文件上传到bin文件夹中 :) - Payam Khaninejad
@PayamKhaninejad 注意问题的背景。原帖已经有文件了。 - wallyk
@wallyk 如果有像我这样从Google来的人 - Payam Khaninejad
是的,另一种方法对我有效,谢谢! - Shashank Shah

5

我发现在Windows命令行(cmd.exe)和Windows PowerShell中运行此命令有所不同。

使用CMD.exe可以正常工作,但在PowerShell中会出现以下错误:

mysql -uroot exampledb < exampledb.sql

“<”运算符保留用于将来使用。

3
你不能在 Windows PowerShell 中使用小于号 <(请参见此处)。 - tvdias

1

如果您已经登录,则尝试此操作将非常有用,但取决于MySQL版本,它适用于MySQL 5.0

如果您尚未登录,请先登录。

mysql>[您的密码]

否则,请使用要导入SQLDump文件的数据库命令。

mysql>use [您的数据库名称]

然后,将数据库Dump文件路径作为以下命令的源(如果不起作用,请将Dump数据库文件复制到MySQL安装的bin文件夹中,例如“C:/programfiles/mysql/mqlserver5.0/bin”)

mysql> source [dataBasePath+name.sql或dataBaseName.sql]


0

不确定你的示例是否有错别字,但首先你需要在标志和它们的值之间留有空格,大致像这样:

mysql -u root -p [password] db < db.sql

我已经尝试了两种方法。但我仍然只能得到所有命令的长列表。 - user80151
你不能在Windows PowerShell中使用小于号<(请参见此处:https://dev59.com/3XI95IYBdhLWcg3wzRPv#2148816) - tvdias

0

这个完美地运作

mysql>[你的密码]

否则,通过命令使用你想要导入SQLDump文件的数据库。

mysql>use [你的数据库名称]

然后将数据库Dump文件路径作为下面的命令源(如果不起作用,请将Dump数据库文件复制到MySQL安装的bin文件夹中,例如“C:/programfiles/mysql/mqlserver5.0/bin”)

mysql> source [dataBasePath+name.sql或dataBaseName.sql]EG: source C:.....sql

我正在使用mysql server 5.5


0

0
在Windows PowerShell中,您可以像以下这样将内容管道传递进去:
Get-Content db.sql | mysql -u root -p [password]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接