Jak mogę zaimportować bazę danych z MySQL z terminala?


373

Jak mogę zaimportować bazę danych z mysql z terminala?

Nie mogę znaleźć dokładnej składni.

Odpowiedzi:


761

Zakładając, że korzystasz z konsoli Linux lub Windows:

Monituj o hasło:

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

Wprowadź hasło bezpośrednio (niezabezpieczone):

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

Przykład:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

Zobacz też:

4.5.1.5 Wykonywanie instrukcji SQL z pliku tekstowego


Uwaga : Jeśli korzystasz z systemu Windows, cdprzed wykonaniem polecenia musisz (zmienić katalog) na katalog MySQL / bin w CMD.


139
+1 z wyjątkiem tego, że nie powinieneś podawać swojego hasła jako parametru CLI. Raczej po prostu określ opcję -p i wprowadź ją ręcznie po wyświetleniu monitu.
St.Woland

13
Nie ma spacji między -p a hasłem, jeśli chcesz wprowadzić je przez powłokę.
Kethryweryn

8
mysql -u nazwa użytkownika -h nazwa hosta-hasło hasło nazwa bazy danych <nazwa_pliku.sql dla zdalnego hosta z terminala
Shaik Rilwan

8
jeśli jesteś już w wierszu polecenia mysql (mysql>), po prostu wpisz source pełna ścieżka_pliku_pliku (uwaga: wybierz bazę danych poleceniem USE DATABASE_NAME przed importem).
Ankit Sharma

3
@Pekka 웃, Jeśli korzystamy source, możemy zobaczyć komunikaty informacyjne ( „wpływ wierszy” ) i komunikaty o błędach. Ale używając twojego rozwiązania, w jaki sposób widzimy używane wiadomości < filename.sql?
Pacerier

141

Preferowany sposób dla systemu Windows:

  1. Otwórz konsolę i uruchom interaktywny tryb MySQL

  2. use <name_of_your_database>;

  3. source <path_of_your_.sql>


2
dlaczego nie potrzebujemy; po nazwie pliku?
Nabeel Khan,

6
@NabeelKhan Większość instrukcji SQL wymaga ;na końcu instrukcji, ale istnieje kilka wyjątków, w tym USEi SOURCE.
Simon East

1
Zastanawiam się, czy działa to szybciej niż przesyłanie pliku (jak w zaakceptowanej odpowiedzi). Podejrzewam, że tak .
Simon East

Jest to o wiele szybsze niż importowanie przez HeidiSQL ... 3 GB w 20 minut!
kmdsax

Ciekawy. Kiedy usunąłem polecenie zostało wykonane pomyślnie. Wcześniej nie. ;source
Nikos,

33

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

-u - dla nazwy użytkownika

-p - w celu podania hasła

Na przykład. mysql -u root -p mydb < /home/db_backup.sql

Możesz także podać hasło poprzedzone -p, ale ze względów bezpieczeństwa nie jest to sugerowane. Hasło pojawi się na samym poleceniu raczej zamaskowane.


2
Oto odpowiedź, której szukam. „<” to znak, który zostawiłem.
Pravinraj Venkatachalam

Jeśli mydb nie istnieje, to jak go utworzyć dynamicznie, gdy uruchamiamy polecenie mysqldump?
अक्षय परूळेकर

12

Bezpośrednio z var / www / html

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

Z poziomu mysql:

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

7

Z terminala:

mysql -uroot -p --default-character-set=utf8 database_name </database_path/database.sql


6

Zwykle używam tego polecenia, aby załadować moje dane SQL, gdy są podzielone na pliki o nazwach: 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

Działa dobrze na powłoce OSX.


5

Jak ładować z wiersza poleceń

Wyjaśnienie:

  1. Najpierw utwórz bazę danych lub użyj istniejącej bazy danych. W moim przypadku korzystam z istniejącej bazy danych

  2. Załaduj bazę danych, podając <name of database> = ClassicModelsw moim przypadku i używając operatora <podaj ścieżkę dodatabase = sakila-data.sql

  3. Uruchamiając show tabele, otrzymuję listę tabel, jak widać.

Uwaga: W moim przypadku wystąpił błąd 1062 , ponieważ próbuję ponownie załadować to samo.


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

przykład

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

Użyj tego z terminala


5

Poniższe polecenie działa na Ubuntu 16.04, nie jestem pewien, czy działa, czy nie na innych platformach Linux.

Eksportuj plik SQL:

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

Przykład: mysqldump -u root -p max_development> max_development.sql

Importuj plik SQL:

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

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

Uwaga Plik SQL powinien istnieć ten sam katalog


5

Otwórz terminal

 mysql -u root -p

 eg:- mysql -u shabeer -p

Następnie utwórz bazę danych

 mysql> create database "Name";

 eg:- create database INVESTOR;

Następnie wybierz tę nową bazę danych „INVESTOR”

 mysql> USE INVESTOR;

Wybierz ścieżkę pliku sql z komputera

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

Następnie naciśnij klawisz Enter i poczekaj kilka razy, jeśli wszystko zostanie wykonane

 mysql> exit

wprowadź opis zdjęcia tutaj


4
  1. Otwórz klienta wiersza poleceń MySQL i wpisz hasło

  2. Przejdź do bazy danych, której chcesz użyć do zaimportowania danych pliku .sql. Zrób to, wpisując:

    USE your_database_name
  3. Teraz zlokalizuj plik .sql, który chcesz uruchomić.
    Jeśli plik znajduje się w głównym lokalnym katalogu dysku C:, a nazwa pliku skryptu .sql to currentSqlTable.sql, wpisz następujące polecenie:

    \. C:\currentSqlTable.sql

    i naciśnij, Enteraby uruchomić plik skryptu SQL.


7
Co to jest rysunek 1/2/3?
glglgl,

4

Po trudach przez jakiś czas znalazłem informacje w https://tommcfarlin.com/importing-a-large-database/

  1. Połącz się z Mysql (użyjmy roota zarówno dla nazwy użytkownika, jak i hasła):

    mysql -uroot -proot
  2. Połącz się z bazą danych (powiedzmy, że nazywa się pusta baza danych (powinieneś otrzymać komunikat potwierdzający):

    connect emptyDatabase

3 Zaimportuj kod źródłowy, powiedzmy, że plik nazywa się mySource.sql i znajduje się w folderze o nazwie mySoureDb pod profilem użytkownika o nazwie myUser:

source /Users/myUser/mySourceDB/mySource.sql

3

Jeśli używasz sakila-db ze strony mysql, na platformie Linux jest to bardzo proste, po prostu wykonaj poniższe czynności. Po pobraniu pliku zip sakila-db wyodrębnij go. Teraz będziesz mieć dwa pliki, jeden to sakila-schema.sql, a drugi to sakila-data.sql .


  1. Otwórz terminal
  2. Wpisz polecenie mysql -u root -p <sakila-schema.sql
  3. Wpisz polecenie mysql -u root -p <sakila-data.sql
  4. Teraz wpisz polecenie mysql -u root -p i wprowadź hasło, teraz wprowadziłeś domyślny system mysql bazą danych.
  5. Aby użyć bazy danych sakila, użyj tego polecenia use sakila;
  6. Aby zobaczyć tabele w sakila-db, użyj polecenia show tables

Proszę uważać, aby wyodrębnione pliki znajdowały się w katalogu domowym .


2

W Ubuntu, z monitora MySQL , użyłeś już tej składni:

mysql> use <dbname> -> Instrukcja USE informuje MySQL, aby używał jej dbnamejako domyślnej bazy danych dla kolejnych instrukcji

mysql> source <file-path>

na przykład :

mysql> use phonebook;

mysql> source /tmp/phonebook.sql;

Ważne : upewnij się, że plik sql znajduje się w katalogu, do którego mysql może uzyskać dostęp do like / tmp


1

Przed uruchomieniem poleceń na terminalu musisz upewnić się, że na terminalu jest zainstalowany MySQL.

Aby zainstalować, możesz użyć następującego polecenia:

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

Odwołanie tutaj .

Następnie możesz za pomocą następujących poleceń zaimportować bazę danych:

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

1

Najprostszym sposobem na zaimportowanie bazy danych do MYSQL z terminala jest poniższy proces -

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

To co robię powyżej to:

  1. Wprowadzanie do mysql z moją nazwą użytkownika i hasłem (tutaj jest root& root)
  2. Po wprowadzeniu hasła podaję nazwę bazy danych, w której chcę zaimportować plik .sql. Upewnij się, że baza danych już istnieje w twoim MYSQL
  3. Po nazwie bazy danych następuje, <a następnie ścieżka do pliku .sql. Na przykład, jeśli mój plik jest przechowywany na pulpicie, ścieżka będzie/home/Desktop/db.sql

Otóż ​​to. Po wykonaniu wszystkich tych czynności naciśnij klawisz Enter i poczekaj, aż plik .sql zostanie przesłany do odpowiedniej bazy danych


0

Pomiędzy -p a hasłem nie może być spacji

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

Zawsze go używam, działa idealnie. Dzięki, że zadałem to pytanie. Miłego dnia. Ciesz się :)


możemy również ustawić te ustawienia w zadaniu cron (zadanie harmonogramu) na serwerach współdzielonych, dedykowanych i chmurowych, aby automatycznie resetować lub importować bazę danych od czasu do czasu.
Kamlesh
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.