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

Cho*_*roc 52 mysql import

我有几个sql文件,我想一次所有文件导入 MySQL数据库.

我去PHPMyAdmin,访问数据库,单击import,选择一个文件并导入它.当我有多个文件时,需要很长时间.

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

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

Cho*_*roc 101

谢谢BlackCharly,我发现如何在Windows中执行此操作,打开终端转到内容文件夹并写入:

copy /b *.sql all_files.sql
Run Code Online (Sandbox Code Playgroud)

这样只将一个文件连接起来,使用PhpMyAdmin快速导入它

在Linux中,正如BlackCharly所说:

cat *.sql  > .all_files.sql
Run Code Online (Sandbox Code Playgroud)

最后但同样重要的是,请考虑@mosh评论:

如果all_files.sql已经存在,这可能导致文件的递归副本本身没有结束!将结果放在单独的目录中是安全的.

  • 不同的表编码怎么样? (2认同)

Sta*_*eyD 51

这是我找到的最简单的方法.

在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


小智 12

  1. 转到cmd

  2. 键入命令提示符C:\ users\Usersname> cd [.sql tables folder path]
    按Enter
    Ex:C:\ users\Usersname> cd E:\ project\database

  3. 键入命令提示符
    C:\ users\Usersname> [.sql文件夹的驱动器(目录)名称]
    按Enter
    Ex:C:\ users\Usersname> E:

  4. 在单个文件中 输入marge all .sql文件(表)的命令提示符
    / b*.sql newdatabase.sql
    按Enter键输入
    EX:E:\ project\database> copy/b*.sql newdatabase.sql

  5. 您可以在目录文件夹中看到合并多个.sql(文件)表文件到单个文件
    Ex:E:\ project\database


Dra*_*Yen 5

我知道这已经有两年多了......但我一直在寻找一种方法来做到这一点,并且对于发布的解决方案并不过分满意(它工作正常,但我想要更多信息,因为导入发生) .将所有SQL文件合并为一个时,您不会获得任何类型的进度更新.

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

for /f %f in ('dir /b <dir>\<mask>') do mysql --user=<user> --password=<password> <dbname> < <dir>\%f
Run Code Online (Sandbox Code Playgroud)

使用一些假设值(作为示例):

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

如果文件夹中有两组SQL备份,则可以将*.sql更改为更具体的内容(如mydb _*.sql).


小智 5

只需输入:

cat *.sql |mysql -uroot -p
Run Code Online (Sandbox Code Playgroud)

并且mysql会依次导入所有的sql文件


小智 5

您也可以使用 for 循环来执行此操作:

#!/bin/bash
for i in *.sql
do
    echo "Importing: $i"
    mysql your_db_name < $i
    wait
done 
Run Code Online (Sandbox Code Playgroud)

来源