Импортировать файл SQL в mysql

193

У меня есть база данных под названием nitm. Я не создавал там таблиц. Но у меня есть файл SQL, содержащий все необходимые данные для базы данных. Файл nitm.sqlнаходится вC:\ drive . Этот файл имеет размер около 103 МБ. Я использую вамп-сервер.

Я использовал следующий синтаксис в консоли MySQL для импорта файла:

mysql>c:/nitm.sql;

Но это не сработало.

кушалбхактаджоши
источник
См. Stackoverflow.com/questions/17666249/…
Этот бразильский парень
проверьте stackoverflow.com/questions/11407349/…
AZinkey

Ответы:

409

Из консоли mysql:

mysql> use DATABASE_NAME;

mysql> source path/to/file.sql;


убедитесь, что перед путем нет косой черты, если вы имеете в виду относительный путь ... мне потребовалось время, чтобы понять это! лол

г -_- б
источник
36
Вам не нужна косая черта перед путем, если вы делаете относительную ссылку. Если вы идете от корня, то вы это сделаете, то есть/home/user/file.sql
Уэс Джонсон
5
Как жаль, что нет возможности добавить ответ в избранное :(
baldrs
4
В Chrome они называются закладками, и вы можете просто щелкнуть звездочку в адресной строке;)
Эндрю
2
@ ArseniuszŁozicki добавьте вопрос, и вы сможете найти ответ :) это то, что я делаю.
mandza
2
Просто чтобы добавить к этому ответу, что это path/to/file.sqlпуть к локальной файловой системе, в котором находится клиент mysql . Бывают случаи, когда сервер MySQL ожидает, что путь будет на стороне сервера, IE, SELECT ... INTO OUTFILEкоторый помещает файл в путь на сервере MySQL!
Деви
90

Наконец я решил проблему. Я поместил файл `nitm.sql` в файл` bin` папки `mysql` и использовал следующий синтаксис.

C:\wamp\bin\mysql\mysql5.0.51b\bin>mysql -u root nitm < nitm.sql

И это сработало.

кушалбхактаджоши
источник
8
Это не из консоли mysql, как просил OP, а из консоли в mysql. Ответ Роберта Энтони Трибианы описывает, как это сделать с консоли mysql.
halfpastfour.am
Это не точный способ решения проблемы, это не решение.
Ашиш Ратан,
4
Вы, ребята, знаете, что это ОП ответил на это?
Уэс,
Если вашему mysql нужен пароль, то этот метод не сработает, вам нужен главный ответ @d -_- b
shellbye
52

Если вы используете Wamp, вы можете попробовать это. Просто use your_Database_nameсначала введите .

  1. Щелкните значок вашего сервера Wamp, затем найдите и MYSQL > MSQL Consoleзапустите его.

  2. Если у вас нет пароля, просто нажмите Enter и введите:

    mysql> use database_name;
    mysql> source location_of_your_file;
    

    Если у вас есть пароль, вам будет предложено ввести пароль. Сначала введите свой пароль, затем введите:

    mysql> use database_name;
    mysql> source location_of_your_file;
    

location_of_your_file должен выглядеть C:\mydb.sql

поэтому рекомендуется mysql> source C: \ mydb.sql;

Этот вид импорта дампа sql очень полезен для БОЛЬШОГО ФАЙЛА SQL.

Я скопировал свой файл mydb.sqв каталогC: Он должен быть заглавной C: для запуска

вот и все.

Роберт Энтони Трибиана
источник
1
Этот ответ кажется специфичным для WAMP, в то время как показанный код работает в любой среде с MySQL, где вы можете получить доступ к MySQL через терминал или консоль.
halfpastfour.am
26

В Windows, если приведенное выше предложение дает вам ошибку (файл не найден или неизвестен db), вы можете удвоить косые черты:

В консоли mysql:

mysql> use DATABASE_NAME;

mysql> source C://path//to//file.sql;
user3219217
источник
1
На моем компьютере с Windows у меня работала одинарная косая черта.
Манодж Шреста
17

Хорошо, я использую Linux, но я думаю, что это справедливо и для Windows. Вы можете сделать это прямо из командной строки.

> mysql -u <user name> -p<password> <database name> < sqlfilename.sql

Или из командной строки mysql вы можете использовать:

mysql>source sqlfilename.sql

Но у обоих этих подходов есть свои преимущества в отображаемых результатах. При первом подходе сценарий завершается, как только обнаруживает ошибку. И что самое приятное, он сообщает вам точный номер строки в исходном файле, где произошла ошибка. Однако он ТОЛЬКО отображает ошибки. Если ошибок не было, скрипт НИЧЕГО не отображает. Что может немного нервировать. Потому что чаще всего вы запускаете скрипт с целым набором команд.

Теперь второй подход (из командной строки mysql) имеет то преимущество, что он отображает сообщение для каждой отдельной команды MySQL в сценарии. При обнаружении ошибок он отображает сообщение об ошибке mysql, но продолжает выполнение сценариев. Это может быть хорошо, потому что вы можете вернуться и исправить все ошибки перед повторным запуском скрипта. Обратной стороной является то, что он НЕ отображает номера строк в скрипте, где были обнаружены ошибки. Это может быть немного больно. Но сообщения об ошибках настолько информативны, что вы, вероятно, сможете понять, в чем проблема.

Я, например, предпочитаю подход непосредственно из командной строки ОС.

Питер
источник
9

Если вы используете xampp

C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql
Нанхе Кумар
источник
7

Вы почти там пользуетесь

mysql> \. c:/nitm.sql;

Вы также можете получить помощь по

mysql> \?
Lmwangi
источник
1
Это не сработало. Когда я использовал mysql> \. c: /nitm.sql; , это выдало ошибку, например Failed to open file 'c: \ nitm.sql;', error: 2
kushalbhaktajoshi 01
Вы пробовали варианты этого? Некоторые приложения уважают C: \ nitm.sql
Lmwangi 01
Также обратите внимание, что точка с запятой в конце не требуется. Так что удали его. Другой вариант - "cd c:", затем попробуйте "\. Nitm.sql"
Lmwangi 01
1
Пожалуйста, подумайте, прежде чем печатать. cd c: - это команда для командной строки DOS, а не для консоли mySql.
kushalbhaktajoshi 01
1
mysql> \. ~/Downloads/backups/file.sql отлично работал в mysql> и coosalтакже работал с терминальным ответом.
gmuhammad 02
6

Для localhost на XAMPP. Откройте окно cmd и введите

cd C:\xampp\mysql\bin
mysql.exe -u root -p

Внимание! Без точки с запятой после -p Введите свой пароль и введите

use database_name;

для выбора нужной базы данных.

Проверьте, есть ли там ваш стол

show tables;

Импорт из вашего sql файла

source sqlfile.sql;

Я поместил свой файл в папку C: \ xampp \ mysql \ bin, чтобы не путаться с местоположением файла sql.

Адриан П.
источник
4

Пытаться:

mysql -u username -p database_name < file.sql

Проверьте параметры MySQL .

Примечание. Лучше использовать полный путь к файлу SQL file.sql.

Акшай Петани
источник
3

Не забывайте использовать

charset utf8

Если ваш sql файл находится в utf-8 :)

Итак, вам нужно сделать:

cmd.exe

mysql -u корень

mysql> кодировка utf8

mysql> используйте mydbname

mysql> источник C: \ myfolder \ myfile.sql

Удачи ))

Олег Всильдеревьев
источник
3

В Linux я перешел в каталог, содержащий файл .sql, перед запуском mysql. Системный курсор теперь находится в том же месте, что и файл, и путь вам не понадобится. Используйте исходный myData.sql, где моя дата заменена именем вашего файла.

cd whatever directory

mysql - p

подключить targetDB

source myData.sql

Выполнено

Роберт Куинн
источник
2

из командной строки (cmd.exe, а не из оболочки mysql) попробуйте что-то вроде:

type c:/nite.sql | mysql -uuser -ppassword dbname
Омри Ядан
источник
Я не создавал никакого пароля для базы данных, поэтому в поле пароля он пуст. И я использовал приведенный выше синтаксис, например, c: /nitm.sql | mysql -u root -p nitm, но это тоже не сработало. Вы можете помочь мне с этим еще?
kushalbhaktajoshi 01
Пропуск -p тоже не сработал. Эта ошибка типа «c:» не распознается как внутренняя или внешняя команда, работающая программа или командный файл.
kushalbhaktajoshi 01
2

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

Я не знаю, исходит ли ваш дамп из Linux-версии MySQL (окончания строк)?

Maickel
источник
Я уже удалил SET-операторы с комментариями mysql. Но все равно возникает ошибка.
kushalbhaktajoshi 01
Вы можете попробовать войти в командную оболочку MySQL и использовать оператор then: "source c: \ nite.sql". Не забудьте выбрать правильную базу данных.
Maickel 01
Я очень ценю твои старания. Спасибо.
kushalbhaktajoshi 01
2

Я установил свой wamp-сервер на диск D:, поэтому вам нужно перейти по следующему пути из командной строки ur -> (и если вы установили ur wamp на диске c:, просто замените d: wtih c: здесь)

D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysql -u root -p password db_name < "d:\backupfile.sql"

здесь root - это пользователь моего phpmyadmin, пароль - это пароль для phpmyadmin, поэтому, если вы не установили пароль для root, просто ничего не введите в этом месте, db_name - это база данных (для которой база данных ur делает резервную копию), backupfile.sql - это файл, из которого вы хотите создать резервную копию вашей базы данных, и вы также можете изменить расположение файла резервной копии (d: \ backupfile.sql) с любого другого места на вашем компьютере

Сачин
источник
1
mysql>c:/nitm.sql;

Это приведет к записи вывода команды mysql в 'nitm.sql;' (Что должен делать символ ';'?) Если у вас есть копия исходного файла (до того, как вы его перезаписали), тогда:

mysql < c:/nitm.sql
symcbean
источник
Это тоже не сработало. Это выдало ошибку, например ERROR 1064 <42000>: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySql, чтобы найти правильный синтаксис для использования рядом с 'mysql <c: /nitm.sql' в строке 1
kushalbhaktajoshi 01
1

Экспорт конкретных баз данных

 djimi:> mysqldump --user=root --host=localhost --port=3306 --password=test -B CCR KIT >ccr_kit_local.sql

это экспортирует базы данных CCR и KIT ...

Импортировать всю экспортированную БД в конкретный экземпляр Mysql (вы должны быть там, где находится ваш файл дампа)

djimi:> mysql --user=root --host=localhost --port=3306 --password=test < ccr_kit_local.sql
Муса
источник
0

В ОС Windows у меня работают следующие команды.

mysql>Use <DatabaseName>
mysql>SOURCE C:/data/ScriptFile.sql;

Имя файла нельзя заключать в одинарные или двойные кавычки. Путь будет содержать '/' вместо '\'.

Пабитра Даш
источник
0

Для тех из вас, кто борется с этим, пробует все возможные ответы, которые вы можете найти на SO. Вот что у меня сработало на VPS под управлением Windows 2012 R2:

  1. Поместите свой sql-файл туда, где для меня находится корзина, в C:\Program Files\MySQL\MySQL Server 8.0\bin

  2. Откройте командную строку Windows (cmd)

  3. Бегать C:\Program Files\MySQL\MySQL Server 8.0\bin > mysql -u [username] -p
  4. Введите ваш пароль
  5. Команда выполнения use [database_name] ;
  6. Импортируйте ваш файл с источником команд C://Program Files//MySQL//MySQL Server 8.0//bin//mydatabasename.sql

Это сделало это для меня, как и все остальное. Это может вам тоже помочь.

user45678
источник