Jak zaimportować pojedynczą tabelę do bazy danych mysql za pomocą wiersza poleceń


141

Pomyślnie zaimportowałem bazę danych za pomocą wiersza poleceń, ale teraz moim problemem jest importowanie pojedynczej tabeli z danymi do istniejącej bazy danych za pomocą wiersza poleceń.


3
eksportuj tylko pojedynczy stół i importuj
Shakti Singh

3
Zobacz także to zduplikowane pytanie: stackoverflow.com/q/1013852/385571 z bardziej
trafnymi

Odpowiedzi:


317

Linux:

W linii poleceń

 mysql -u username -p  databasename  < path/example.sql

umieść swoją tabelę w example.sql

Import / eksport dla pojedynczej tabeli:

  1. Eksportuj schemat tabeli

    mysqldump -u username -p databasename tableName > path/example.sql

    Spowoduje to utworzenie pliku o nazwie example.sqlwe wspomnianej ścieżce i zapisanie create tablepolecenia sql w celu utworzenia tabeli tableName.

  2. Importuj dane do tabeli

    mysql -u username -p databasename < path/example.sql

    To polecenie wymaga pliku sql zawierającego dane w postaci insertinstrukcji dla tabeli tableName. Wszystkie insertwyciągi zostaną wykonane i dane zostaną załadowane.


2
brakowało -u;) mysqldump -u nazwa użytkownika -p nazwa bazy danych nazwa-tabeli> ścieżka / przykład.sql
Kazmin

2
Do importu nie musisz używać mysql dump. mysql -u nazwa użytkownika -p nazwa bazy danych nazwa_tabeli <ścieżka / przykład.sql To powinno
wystarczyć

8
tableNameNazwa nie potrzebne dla wszystkich wersji MySQL i generuje błędy, więc może trzeba go pominąć!
mchar

1
Otrzymywałem błąd składni, dopóki nie zdałem sobie sprawy, że jestem w bash, a nie mysql podczas wykonywania.
Christia,

2
Działa to tylko wtedy, gdy mam dostęp do bazy danych, z której mogę wyeksportować określoną tabelę. Jeśli jednak mam pełny zrzut bazy danych i chcę w pełni wybrać tabelę (y) do zaimportowania, to rozwiązanie nie zadziała. Połączony post Czy mogę przywrócić pojedynczą tabelę z pełnego pliku mysql mysqldump? rozwiązuje ten problem.
codeforester

34

Eksport:

mysqldump --user=root databasename > whole.database.sql
mysqldump --user=root databasename onlySingleTableName > single.table.sql

Import :

Cała baza danych :

mysql --user=root wholedatabase < whole.database.sql

Pojedynczy stół :

mysql --user=root databasename < single.table.sql


12

Importowanie pojedynczej tabeli

Aby zaimportować pojedynczą tabelę do istniejącej bazy danych, użyj następującego polecenia:

mysql -u username -p -D database_name < tableName.sql

Uwaga: Lepiej jest użyć pełnej ścieżki do pliku sql nazwa_tabeli.sql


5

Wiersz poleceń

Import / eksport dla pojedynczej tabeli:

Eksportowanie schematu tabeli

 -> mysqldump -u your_user_name -p your_database_name table_name > test.sql

Spowoduje to utworzenie pliku o nazwie test.sql i utworzenie polecenia sql tabeli w celu utworzenia tabeli nazwa_tabeli.

Importowanie danych do tabeli

 -> mysql -u your_user_name -p database_name table_name < test.sql

Upewnij się, że plik test.sql znajduje się w tym samym katalogu, jeśli nie, przejdź przez ścieżkę, a następnie uruchom polecenie.


3
Nie musisz określać nazwy tabeli w wierszu poleceń, ponieważ wyeksportowany plik SQL ma odpowiednie wywołanie do utworzenia tabeli. Wszystko czego potrzebujesz to mysql -u your_user_name -p database_name < test.sql.
Michael De Silva,

1
Oto przykład z wyeksportowanej tabeli, `22 DROP TABLE JEŚLI ISTNIEJE account_product_prices; 23 / *! 40101 SET @saved_cs_client = @@ character_set_client /; 24 / ! 40101 SET znak_zestaw_klienta = utf8 * /; 25 STWÓRZ TABELĘ account_product_prices(`
Michael De Silva,

5

Przede wszystkim zaloguj się do swojej bazy danych i sprawdź, czy tabela bazy danych, którą chcesz zaimportować, nie jest dostępna w Twojej bazie danych.

Jeśli jest dostępna, usuń tabelę za pomocą polecenia. W przeciwnym razie wystąpi błąd podczas importowania tabeli.

DROP TABLE Table_Name;

Następnie przejdź do folderu, w którym masz .sqlplik do zaimportowania, i uruchom następujące polecenie z terminala

mysql -u username -p  databasename  < yourtable.sql

Terminal poprosi Cię o podanie hasła. Wprowadź go i sprawdź bazę danych.


4

Działa poprawnie ...

C:\>mysql>bin>mysql -u USERNAME DB_NAME < tableNameFile.sql

proszę zauważyć, że plik .sql określa Twoją aktualną bazę danych.


2

Możemy zaimportować pojedynczą tabelę za pomocą CMD, jak poniżej:

D:\wamp\bin\mysql\mysql5.5.24\bin>mysql -h hostname -u username -p passowrd databasename < filepath

2

jeśli masz już żądaną tabelę w swojej bazie danych, najpierw ją usuń, a następnie uruchom poniższe polecenie:

 mysql -u username -p  databasename  < yourtable.sql

2

Z serwera na lokalny (eksportowanie)

mysqldump -u username -p db_name table_name > path/filename.sql;
mysqldump -u root -p remotelab welcome_ulink > 
/home_local/ladmin/kakalwar/base/welcome_ulink.sql;

Z lokalnego na serwer (importowanie)

mysql -u username -p -D databasename < path/x/y/z/welcome_queue.sql
mysql -u root -p -D remotelab < 
/home_local/ladmin/kakalwar/instant_status/db_04_12/welcome_queue.sql

2
Dla początkujących pamiętaj, że musisz operować z terminala, a nie wewnątrz mysql po naciśnięciu polecenia, zapyta o hasło db_password
Venkatesh Kakalwar

2

Również działa. W formie polecenia

cd C:\wamp\bin\mysql\mysql5.5.8\bin //hit enter
mysql -u -p databasename //-u=root,-p=blank

2
  • Byłoby to połączenie EXPORT INTO OUTFILEiLOAD DATA INFILE

  • Musisz wyeksportować tę pojedynczą tabelę za pomocą EXPORT INTO OUTFILE, to wyeksportuje dane tabeli do pliku. Możesz zaimportować tę konkretną tabelę za pomocąLOAD DATA INFILE

  • Patrz doc1 , doc2


1

możesz to zrobić za pomocą polecenia mysql zamiast polecenia linux.
1. zaloguj się do swojego mysql.
2. wykonaj to w poleceniu mysql:
use DATABASE_NAME;
SET autocommit=0 ; source ABSOLUTE_PATH/TABLE_SQL_FILE.sql ; COMMIT ;


1
mysql -u root -p -D dbname < tablename.sql

1
Choć ten fragment kodu jest mile widziany i może zapewnić jakąś pomoc, byłoby znacznie się poprawiła, gdyby obejmowała wyjaśnienie z how i dlaczego to rozwiązuje problem. Pamiętaj, że odpowiadasz na pytanie do czytelników w przyszłości, a nie tylko osoba, która zapyta teraz! Proszę edytować swoje odpowiedzi, aby dodać wyjaśnienie, i dać wskazówkę co zastosować ograniczenia i założenia.
Toby Speight


0

Użycie tymczasowej bazy danych może być rozwiązaniem w zależności od rozmiaru bazy danych.

mysql -u [username] -p -e "create database tempdb"
mysql -u [username] -p tempdb < db.sql
mysqldump -u [username] -p tempdb _table_to_import_ > table_to_import.sql
mysql -u [username] -p maindb < table_to_import.sql

0

Aby zaimportować tabelę do bazy danych, jeśli tabela już istnieje, dodaj tę linię do pliku sql DROP TABLE IF EXIST 'table_name'i uruchom polecenie mysql -u username -p database_name < import_sql_file.sql. Przed wykonaniem polecenia sprawdź ścieżkę do pliku sql.

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.