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


373

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

Я не могу найти точный синтаксис.

Ответы:


761

Предполагая, что вы используете консоль Linux или Windows:

Запросить пароль:

mysql -u <username> -p <databasename> < <filename.sql>

Введите пароль напрямую (небезопасно):

mysql -u <username> -p<PlainPassword> <databasename> < <filename.sql>

Пример:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

Смотрите также:

4.5.1.5. Выполнение операторов SQL из текстового файла


Примечание . Если вы работаете в Windows, то cdперед выполнением команды вам придется (сменить каталог) на каталог MySQL / bin внутри CMD.


139
+1 за исключением того, что вы не должны передавать свой пароль в качестве параметра CLI. Вместо этого просто укажите параметр -p и введите его вручную после запроса.
St.Woland

13
Между -p и паролем нет пробела, если вы хотите ввести его с помощью оболочки.
Кетриверин

8
mysql -u имя_пользователя -h имя_хоста -ppassword имя_базы_данных <filename.sql для удаленного хоста из терминала
Шаик Рилван

8
если вы уже находитесь в командной строке mysql (mysql>), просто введите source full_path_of_file (примечание: выберите базу данных командой USE DATABASE_NAME перед импортом).
Анкит Шарма

3
@Pekka 웃, если мы используем source, мы можем видеть информационные сообщения ( «затронуты строки» ) и сообщения об ошибках. Но используя ваше решение, Как мы видим сообщения, используя < filename.sql?
Pacerier

141

Предпочтительный способ для окон:

  1. Откройте консоль и запустите интерактивный режим MySQL

  2. use <name_of_your_database>;

  3. source <path_of_your_.sql>


2
почему нам не нужен; после имени файла?
Набиль Хан

6
@NabeelKhan Большинство операторов SQL требуют ;в конце оператора a, но есть несколько исключений, включая USEи SOURCE.
Саймон Ист

1
Интересно, работает ли это быстрее, чем обкатка файла (как в принятом ответе). Мое подозрение - да .
Саймон Ист

Это намного быстрее, чем импорт через HeidiSQL ... 3 ГБ за 20 минут!
kmdsax

Любопытно. Когда я извлекал команда была успешно выполнена. До этого не было. ;source
Никос

33

mysql -u <USERNAME> -p <DB NAME> < <dump file path>

-u - для имени пользователя

-p - подсказать пароль

Например. mysql -u root -p mydb < /home/db_backup.sql

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


2
Это ответ, который я ищу. «<» это знак, который я оставил.
Правинрадж Венкатачалам

Если mydb не существует, то как создать его динамически, когда мы запускаем команду mysqldump?
अक्षय परूळेकर

12

Напрямую из var / www / html

mysql -u username -p database_name < /path/to/file.sql

Изнутри mysql:

mysql> use db_name;
mysql> source backup-file.sql



6

Я обычно использую эту команду для загрузки моих данных SQL, когда они разделены на файлы с именами: 000-tableA.sql, 001-tableB.sql, 002-tableC.sql.

for anyvar in *.sql; do <path to your bin>/mysql -u<username> -p<password>  <database name> < $anyvar; done

Хорошо работает на оболочке OSX.


5

Как загрузить из командной строки

Объяснение:

  1. Сначала создайте базу данных или используйте существующую базу данных. В моем случае я использую существующую базу данных

  2. Загрузите базу данных, указав <name of database> = ClassicModelsв моем случае и с помощью оператора <укажите путь кdatabase = sakila-data.sql

  3. Запустив show tables, я получаю список таблиц, как вы можете видеть.

Примечание: в моем случае я получил ошибку 1062 , потому что я пытаюсь загрузить то же самое снова.


5
mysql -u username -ppassword dbname < /path/file-name.sql

пример

mysql -u root -proot product < /home/myPC/Downloads/tbl_product.sql

Используйте это из терминала


5

Ниже команда работает на Ubuntu 16.04, я не уверен, работает она или нет на других платформах Linux.

Экспортировать файл SQL:

$ mysqldump -u [user_name] -p [database_name] < [database_name.sql]  

Пример: mysqldump -u root -p max_development> max_development.sql

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

$ mysqldump -u [user_name] -p [database_name] > [file_name.sql]

Example: mysqldump -u root -p max_production < max_development.sql

Примечание. Файл SQL должен существовать в том же каталоге


5

Тогда откройте терминал

 mysql -u root -p

 eg:- mysql -u shabeer -p

После этого создайте базу данных

 mysql> create database "Name";

 eg:- create database INVESTOR;

Затем выберите эту новую базу данных "ИНВЕСТОР"

 mysql> USE INVESTOR;

Выберите путь к файлу sql с компьютера

 mysql> source /home/shabeer/Desktop/new_file.sql;

Затем нажмите Enter и подождите несколько раз, если все это выполнено.

 mysql> exit

введите описание изображения здесь


4
  1. Откройте клиент командной строки MySQL и введите свой пароль

  2. Перейдите в базу данных, которую вы хотите использовать для импорта данных файла .sql. Сделайте это, набрав:

    USE your_database_name
  3. Теперь найдите файл .sql, который вы хотите выполнить.
    Если файл находится в главном локальном каталоге диска C: и имя файла сценария .sql есть currentSqlTable.sql, введите следующее:

    \. C:\currentSqlTable.sql

    и нажмите, Enterчтобы выполнить файл сценария SQL.


7
Что такое рисунок 1/2/3?
glglgl

4

Поработав некоторое время, я нашел информацию в https://tommcfarlin.com/importing-a-large-database/

  1. Подключитесь к Mysql (давайте используем root для имени пользователя и пароля):

    mysql -uroot -proot
  2. Подключитесь к базе данных (скажем, она называется emptyDatabase (вы должны получить подтверждающее сообщение):

    connect emptyDatabase

3 Импортируйте исходный код. Допустим, файл называется mySource.sql и находится в папке mySoureDb в профиле пользователя myUser:

source /Users/myUser/mySourceDB/mySource.sql

3

Если вы используете sakila-db с веб-сайта mysql, на платформе Linux это очень просто, просто следуйте приведенным ниже шагам. После загрузки zip-файла sakila-db распакуйте его. Теперь у вас будет два файла, один - sakila-schema.sql, а другой - sakila-data.sql .


  1. Открытый терминал
  2. Введите команду mysql -u root -p <sakila-schema.sql
  3. Введите команду mysql -u root -p <sakila-data.sql
  4. Теперь введите команду mysql -u root -p и введите свой пароль, теперь вы вошли в систему mysql с базой данных по умолчанию .
  5. Чтобы использовать базу данных sakila, используйте эту команду: sakila;
  6. Чтобы увидеть таблицы в sakila-db, используйте команду show tables

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


2

В Ubuntu от монитора MySQL вы уже использовали этот синтаксис:

mysql> use <dbname> -> Оператор USE указывает MySQL использовать dbnameв качестве базы данных по умолчанию для последующих операторов.

mysql> source <file-path>

например :

mysql> use phonebook;

mysql> source /tmp/phonebook.sql;

Важно : убедитесь, что файл sql находится в каталоге, к которому mysql может получить доступ как / tmp


1

Перед запуском команд на терминале вы должны убедиться, что на вашем терминале установлен MySQL.

Вы можете использовать следующую команду для его установки:

sudo apt-get update
sudo apt-get install mysql-server

Ссылка здесь .

После этого вы можете использовать следующие команды для импорта базы данных:

mysql -u <username> -p <databasename> < <filename.sql>

1

Самый простой способ импортировать базу данных в вашем MYSQL из терминала - это описанный ниже процесс.

mysql -u root -p root database_name < path to your .sql file

То, что я делаю выше, это:

  1. Вход в MySQL с моим именем пользователя и паролем (здесь это root& root)
  2. После ввода пароля я даю имя базы данных, куда я хочу импортировать мой файл .sql. Пожалуйста, убедитесь, что база данных уже существует в вашем MYSQL
  3. За именем базы данных следует, <а затем путь к вашему файлу .sql. Например, если мой файл хранится на рабочем столе, путь будет/home/Desktop/db.sql

Вот и все. После того, как вы все это сделали, нажмите enter и подождите, пока ваш файл .sql будет загружен в соответствующую базу данных.


0

Между -p и паролем не должно быть пробела

mysql -u [dbusername] -p[dbpassword] [databasename] < /home/serverusername/public_html/restore_db/database_file.sql

Я всегда им пользуюсь, работает отлично. Спасибо, чтобы задать этот вопрос. Хорошего дня. Приятного просмотра :)


мы также можем установить эти настройки в cron job (расписание задачи) на общих, выделенных и облачных серверах для автоматического сброса или импорта базы данных время от времени.
Kamlesh
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.