Подтвердить что ты не робот

Как легко импортировать несколько файлов SQL в базу данных MySQL?

У меня есть несколько файлов sql и я хочу импортировать их все сразу в базу данных MySQL.

Я захожу в PHPMyAdmin, захожу в базу данных, нажимаю import, выбираю файл и импортирую его. Когда у меня больше пары файлов, это занимает много времени.

Я хотел бы знать, если есть лучший способ импортировать несколько файлов, что-то вроде одного файла, который будет импортировать другие файлы или аналогичные.

Я использую WAMP и мне нужно решение, которое не требует установки дополнительных программ на моем компьютере.

4b9b3361

Ответ 1

В 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

Ответ 2

Это самый простой способ, который я нашел.

В 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

Ответ 3

  • Перейти к cmd

  • Введите командную строку C:\users\Usersname > cd [.sql путь к папке таблиц]
    Нажмите Enter
    Пример: C:\users\Usersname > cd E:\project\database

  • Введите команду командной строки
    C:\users\имя_пользователя > имя папки (имя папки) sql] Нажмите Enter
    Пример: C:\users\Usersname > E:

  • Введите команду командной строки для marge весь файл .sql(таблица) в одном файле
    copy/b *.sql newdatabase.sql
    Нажмите Enter
    EX: E:\project\database > copy/b *.sql newdatabase.sql

  • Вы можете увидеть таблицы Merge Multiple.sql(файл) Файлы в один файл в папке вашего каталога
    Пример: E:\project\database

Ответ 4

Я знаю, что прошло чуть больше двух лет... но я искал способ сделать это и не был слишком доволен выпущенным решением (он отлично работает, но я хотел получить немного больше информации, поскольку импорт происходит). Объединяя все файлы 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).

Ответ 5

Введите оболочку mysql следующим образом.

mysql --host = localhost --user = имя пользователя --password --database = db

Затем используйте команду source и точку с запятой для разделения команд.

source file1.sql; исходный файл2; исходный файл3;

Ответ 6

Сохраните этот файл как .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

Самое простое решение - копировать/вставлять каждый sql файл в один.

Вы не можете добавить некоторую разметку sql для импорта файлов (импортированные файлы будут на вашем компьютере, а не на сервере, и я не думаю, что MySQL управляет некоторой разметкой импорта для внешних файлов sql).

Ответ 8

Просто введите ниже команду в командной строке, и он будет связывать все файлы SQL в один файл SQL,

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