Як я можу імпортувати базу даних з 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 з текстового файлу


Примітка : Якщо ви перебуваєте у вікні, вам доведеться cd(змінити каталог) у свій каталог MySQL / bin всередині CMD перед виконанням команди.


139
+1, окрім випадків, коли ви не повинні передавати свій пароль як параметр CLI. Досить просто вказати опцію -p та ввести її вручну після підказки.
St.Woland

13
Між -p та паролем немає місця, якщо ви хочете ввести його по оболонці.
Кетріверін

8
mysql -u ім'я користувача -h ім'я хоста -ppassword ім'я бази даних <filename.sql для віддаленого хоста з терміналу
Shaik Rilwan

8
якщо ви вже знаходитесь у командному рядку mysql (mysql>), просто введіть джерело 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 вимагає в ;кінці оператора, але є кілька винятків, включаючи 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
Це відповідь, яку я шукаю. "<" це знак, який я залишив.
Pravinraj Venkatachalam

Якщо 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. Запускаючи шоу-таблиці, я отримую список таблиць, як ви бачите.

Примітка. У моєму випадку я отримав помилку 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, використовуйте цю команду use sakila;
  6. Щоб побачити таблиці в sakila-db, використовуйте команду show таблиць

Будь ласка, подбайте про те, щоб вилучені файли були в домашньому каталозі .


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. Наприклад, якщо мій файл зберігається в Desktop, шлях буде/home/Desktop/db.sql

Це воно. Після того, як ви все це зробите, натисніть клавішу Enter і дочекайтеся, коли ваш файл .sql буде завантажений у відповідну базу даних


0

Між -p та паролем не повинно бути місця

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

Я завжди його використовую, він прекрасно працює. Дякую, що задали це запитання. Хорошого дня. Ньой :)


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