Как легко импортировать несколько файлов SQL в базу данных MySQL?
У меня есть несколько файлов sql
и я хочу импортировать их все сразу в базу данных MySQL.
Я захожу в PHPMyAdmin
, захожу в базу данных, нажимаю import
, выбираю файл и импортирую его. Когда у меня больше пары файлов, это занимает много времени.
Я хотел бы знать, если есть лучший способ импортировать несколько файлов, что-то вроде одного файла, который будет импортировать другие файлы или аналогичные.
Я использую WAMP
и мне нужно решение, которое не требует установки дополнительных программ на моем компьютере.
Ответы
Ответ 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;