我有几个sql
个文件,我想将所有这些文件一次导入到MySQL数据库中。
我转到PHPMyAdmin
,访问数据库,点击import
,选择一个文件并导入。当我有两个以上的文件需要很长时间。
我想知道是否有更好的方法来导入多个文件,例如一个文件会导入其他文件或类似文件。
我正在使用WAMP
我想在我的计算机上找到不需要安装其他程序的解决方案。
答案 0 :(得分:87)
感谢BlackCharly,我发现如何在Windows中执行此操作,打开终端转到内容文件夹并写入:
copy /b *.sql all_files.sql
这样只会将所有文件合并为一个,这样可以使用PhpMyAdmin
快速导入在Linux中,正如BlackCharly所说:
cat *.sql > all_files.sql
最后但同样重要的是,请考虑@mosh评论:
如果all_files.sql已存在,则可能导致递归复制 文件本身没有尽头!将结果单独放入 目录是安全的。
答案 1 :(得分:42)
这是我找到的最简单方法。
在Windows(powershell)中:
cat *.sql | C:\wamp64\bin\mysql\mysql5.7.21\bin\mysql.exe -u user -p database
您需要在上面的WAMP - MySQL
插入路径,我已经使用了系统路径。
在Linux(Bash)中:
cat *.sql | mysql -u user -p database
答案 2 :(得分:11)
转到cmd
输入命令提示符
C:\ users \ Usersname> cd [.sql tables folder path]
按Enter键
例如: C:\ users \ Usersname> cd E:\ project \ database
输入命令提示符
C:\ users \ Usersname> [.sql文件夹的驱动器(目录)名称]
按Enter键
例如: C:\ users \ Usersname> E:
在单个文件中输入marge all .sql文件(表)的命令提示符
copy / b * .sql newdatabase.sql
按Enter键
EX: E:\ project \ database> copy / b * .sql newdatabase.sql
您可以在目录文件夹中看到合并多个.sql(文件)表文件到单个文件中 例如: E:\ project \ database
答案 3 :(得分:5)
我知道这已经有两年多了......但我一直在寻找一种方法来做到这一点,并且对于发布的解决方案并不过分满意(它工作正常,但我想要更多信息,因为进口发生)。将所有SQL文件合并为一个时,您不会获得任何类型的进度更新。
所以我一直在寻找答案,并认为这可能是一个发布我未来寻找相同答案的人的好地方。这是Windows中的命令行,它将从文件夹中导入多个SQL文件。您可以在mysql.exe所在的目录中从命令行运行此命令。
for /f %f in ('dir /b <dir>\<mask>') do mysql --user=<user> --password=<password> <dbname> < <dir>\%f
使用一些假定值(作为示例):
for /f %f in ('dir /b c:\sqlbackup\*.sql') do mysql --user=mylogin --password=mypass mydb < c:\sqlbackup\%f
如果文件夹中有两组SQL备份,则可以将* .sql更改为更具体的内容(例如mydb _ * .sql)。
答案 4 :(得分:4)
像这样输入mysql shell。
mysql --host = localhost --user = username --password --database = db
然后使用 source 命令和分号分隔命令。
source file1.sql;源文件2;源文件3;
答案 5 :(得分:3)
只需键入:
cat *.sql |mysql -uroot -p
并且mysql将按顺序导入所有sql文件
答案 6 :(得分:2)
将此文件另存为.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)和数据库名称。
答案 7 :(得分:2)
您也可以通过for循环来这样做:
#!/bin/bash
for i in *.sql
do
echo "Importing: $i"
mysql your_db_name < $i
wait
done
答案 8 :(得分:0)
最简单的解决方案是将每个sql文件复制/粘贴到一个。
您无法为文件导入添加一些 sql标记(导入的文件将在您的计算机中,而不是在服务器中,我不认为MySQL管理一些导入标记用于外部sql文件)。
答案 9 :(得分:0)
只需在命令提示符下键入以下命令,它将所有sql文件绑定到单个sql文件中,
c:/xampp/mysql/bin/sql/ type *.sql > OneFile.sql;
答案 10 :(得分:0)
在Windows中打开Windows Powershell,然后转到运行该命令的sql文件所在的文件夹
cat *.sql | C:\xampp\mysql\bin\mysql.exe -u username -p databasename