如何轻松地将多个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