如何轻松地将多个sql文件导入MySQL数据库?

我有几个WAMP019文件,我想一次将它们全部导入到MySQL数据库中。

我转到WAMP019,访问数据库,单击import,选择一个文件并将其导入。 当我有多个文件时,需要很长时间。

我想知道是否有更好的方法来导入多个文件,例如一个文件将导入其他文件或类似文件。

我正在使用WAMP019,我想要一个不需要在计算机上安装其他程序的解决方案。

Chococroc asked 2020-01-20T22:09:31Z

8个解决方案

99 votes

在Windows中,打开终端,转到内容文件夹并输入:

copy /b *.sql all_files.sql

这样可以将所有文件合并在一起,从而可以非常快地使用PhpMyAdmin导入。

在Linux和macOS中,正如@BlackCharly指出的,这可以解决问题:

cat *.sql > .all_files.sql

重要说明:直接执行该操作应该会顺利进行,但最终可能会陷入一个循环,由于系统向该文件本身添加了文件,海量输出文件变得越来越大。 为了避免这种情况,有两种可能的解决方案。

A)将结果放在一个单独的目录中以确保安全(感谢@mosh):

mkdir concatSql

cat *.sql > ./concatSql/all_files.sql

B)将它们连接到具有不同扩展名的文件中,然后更改其名称。 (感谢@William Turrell)

cat *.sql > all_files.sql1

mv all_files.sql1 all_files.sql

Chococroc answered 2020-01-20T22:10:18Z

50 votes

这是我发现的最简单的方法。

在Windows(PowerShell)中:

cat *.sql | mysql -u user -p database

您将需要在上面插入您的cat *.sql | mysql -u user -p database的路径,我已经使用了我的系统路径。

在Linux(Bash)中:

cat *.sql | mysql -u user -p database

StanleyD answered 2020-01-20T22:10:59Z

12 votes

转到cmd

在命令提示符下输入C:\ users \ Username> cd [.sql表文件夹路径]

按Enter

例如:C:\ users \ Usersname> cd E:\ project \ database

键入命令提示符

C:\ users \ Username> [。sql文件夹驱动器(目录)名称]

按Enter

例如:C:\ users \ Username> E:

键入命令提示符以将所有.sql文件(表)合并到一个文件中

复制/ b * .sql newdatabase.sql

按Enter

例如:E:\ project \ database> copy / b * .sql newdatabase.sql

您可以在目录文件夹中看到将多个.sql(file)表文件合并到单个文件中

例如:E:\ project \ database

PHP Kishan answered 2020-01-20T22:12:16Z

5 votes

我知道已经过了两年多了...但是我一直在寻找一种方法来做,并且对发布的解决方案不太满意(它很好用,但是随着导入的进行,我需要更多信息) 。 将所有SQL文件组合到一个时,您不会获得任何进度更新。

因此,我一直在寻找答案,并认为这可能是发布我所发现的东西的好地方,供以后寻找相同答案的人使用。 这是Windows中的命令行,它将从一个文件夹中导入多个SQL文件。 您可以在mysql.exe所在的目录中从命令行运行此命令。

for /f %f in ('dir /b

以一些假定值(例如):

for /f %f in ('dir /b c:\sqlbackup\*.sql') do mysql --user=mylogin --password=mypass mydb < c:\sqlbackup\%f

如果文件夹中有两组SQL备份,则可以将* .sql更改为更特定的名称(例如mydb _ *。sql)。

DragonYen answered 2020-01-20T22:12:50Z

4 votes

像这样输入mysql shell。

mysql --host = localhost --user =用户名--password --database = db

然后使用source命令和分号分隔命令。

源文件1.sql; 源文件2; 源文件3;

Markus Zeller answered 2020-01-20T22:13:24Z

2 votes

将此文件另存为.bat并运行,更改括号内的变量...

@echo off

title Mysql Import Script

cd (Folder Name)

for %%a in (*) do (

echo Importing File : %%a

mysql -u(username) -p(password) %%~na < %%a

)

pause

如果只有一个数据库修改(%%〜na)使用数据库名称。

Tarek answered 2020-01-20T22:13:48Z

1 votes

最简单的解决方案是将每个sql文件复制/粘贴到一个文件中。

您不能为文件导入添加一些sql标记(导入的文件将在您的计算机中,而不是在服务器中,并且我认为MySQL不会为外部sql文件管理某些导入标记)。

BlackCharly answered 2020-01-20T22:14:13Z

0 votes

只需在命令提示符下键入以下命令,它将所有sql文件绑定到单个sql文件中,

c:/xampp/mysql/bin/sql/ type *.sql > OneFile.sql;

Ajay Singh answered 2020-01-20T22:14:33Z