Zaimportuj plik SQL do mysql

191

Mam bazę danych o nazwie nitm. Nie utworzyłem tam żadnych tabel. Ale mam plik SQL, który zawiera wszystkie niezbędne dane do bazy danych. Plik nitm.sqljest w C:\ drive. Ten plik ma rozmiar około 103 MB. Używam serwera Wamp.

Do zaimportowania pliku użyłem następującej składni w konsoli MySQL:

mysql>c:/nitm.sql;

Ale to nie zadziałało.

kushalbhaktajoshi
źródło

Odpowiedzi:

406

Z konsoli mysql:

mysql> use DATABASE_NAME;

mysql> source path/to/file.sql;


upewnij się, że nie ma ukośnika przed ścieżką, jeśli masz na myśli ścieżkę względną ... zajęło mi to trochę czasu, aby to zrozumieć! lol

d -_- b
źródło
36
Jeśli potrzebujesz względnego odniesienia, nie potrzebujesz ukośnika przed ścieżką. Jeśli wybierasz się z katalogu głównego, to będziesz/home/user/file.sql
Wes Johnson
5
Szkoda, że ​​nie ma sposobu, aby dodać odpowiedź do ulubionych :(
baldrs,
4
W Chrome nazywane są zakładkami i wystarczy kliknąć gwiazdkę w pasku adresu;)
Andrew
2
@ ArseniuszŁozicki dodaj pytanie, a będziesz w stanie dotrzeć do odpowiedzi :) to właśnie robię.
mandza
2
Wystarczy dodać do tej odpowiedzi, że path/to/file.sqljest to ścieżka lokalnego systemu plików, w której znajduje się klient mysql . Są chwile, kiedy serwer MySQL oczekuje ścieżki po stronie serwera, IE, SELECT ... INTO OUTFILEktóra upuszcza plik do ścieżki na serwerze MySQL!
Devy
90

Wreszcie rozwiązałem problem. Umieściłem plik `nitm.sql` w pliku` bin` folderu `mysql` i użyłem następującej składni.

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

I to zadziałało.

kushalbhaktajoshi
źródło
8
To nie pochodzi z konsoli mysql, jak poprosił OP, ale z konsoli do mysql. Odpowiedź Roberta Anthony'ego Tribiana opisuje, jak to zrobić z konsoli mysql.
halfpastfour.am
To nie jest dokładny sposób rozwiązania problemu, to nie jest rozwiązanie.
Ashish Ratan,
4
Wiecie, że to OP odpowiedział na to?
Wes
Jeśli twój mysql potrzebuje hasła, oznacza to, że metoda nie zadziała, potrzebujesz najwyższej odpowiedzi z @d -_- b
shellbye
52

Jeśli używasz wampa, możesz spróbować tego. Po prostu wpisz use your_Database_namepierwszy.

  1. Kliknij ikonę serwera Wamp, a następnie poszukaj, MYSQL > MSQL Consolea następnie uruchom go.

  2. Jeśli nie masz hasła, po prostu naciśnij enter i wpisz:

    mysql> use database_name;
    mysql> source location_of_your_file;

    Jeśli masz hasło, obiecujesz wprowadzić hasło. Najpierw wpisz hasło, a następnie wpisz:

    mysql> use database_name;
    mysql> source location_of_your_file;

location_of_your_file powinien wyglądać C:\mydb.sql

więc poleceniem jest mysql> source C: \ mydb.sql;

Ten rodzaj importu zrzutu SQL jest bardzo pomocny dla BIG SQL FILE.

Skopiowałem mój plik mydb.sqdo katalogu C:. Powinien to być wielka litera C: aby uruchomić

i to wszystko.

Robert Anthony Tribiana
źródło
1
Ta odpowiedź wydaje się specyficzna dla WAMP, podczas gdy pokazany kod działa z dowolnego środowiska z MySQL, w którym można uzyskać dostęp do MySQL za pośrednictwem terminala lub konsoli.
halfpastfour.am
26

W systemie Windows, jeśli powyższa sugestia powoduje błąd (nie znaleziono pliku lub nieznana baza danych), możesz podwoić ukośniki:

W konsoli mysql:

mysql> use DATABASE_NAME;

mysql> source C://path//to//file.sql;
użytkownik3219217
źródło
1
Pojedynczy ukośnik działał dla mnie na moim komputerze z systemem Windows.
Manoj Shrestha
17

Ok, więc używam Linuksa, ale myślę, że dotyczy to również Windows. Możesz to zrobić bezpośrednio z wiersza polecenia

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

Lub z poziomu wiersza polecenia mysql możesz użyć:

mysql>source sqlfilename.sql

Ale oba te podejścia mają swoje zalety w wyświetlanych wynikach. W pierwszym podejściu skrypt kończy się, gdy tylko napotka błąd. A najlepsze jest to, że podaje dokładny numer wiersza w pliku źródłowym, w którym wystąpił błąd. Jednak wyświetla TYLKO błędy. Jeśli nie napotkał żadnych błędów, skrypty wyświetlają NIC. Co może być trochę denerwujące. Ponieważ najczęściej uruchamiasz skrypt z całą stosem poleceń.

Teraz drugie podejście (z poziomu wiersza polecenia mysql) ma tę zaletę, że wyświetla komunikat dla każdej innej komendy MySQL w skrypcie. Jeśli napotka błędy, wyświetla komunikat o błędzie mysql, ale kontynuuje pracę przez skrypty. Może to być dobre, ponieważ możesz następnie wrócić i naprawić wszystkie błędy przed ponownym uruchomieniem skryptu. Minusem jest to, że NIE wyświetla numerów wierszy w skrypcie, w którym wystąpiły błędy. To może być trochę uciążliwe. Ale komunikaty o błędach są tak opisowe, że prawdopodobnie możesz dowiedzieć się, gdzie jest problem.

Ja, na przykład, wolę podejście z linii poleceń bezpośrednio z systemu operacyjnego.

peterb
źródło
9

Jeśli używasz xampp

C:\xampp\mysql\bin\mysql -uroot -p nitm < nitm.sql
Nanhe Kumar
źródło
7

Jesteś prawie na miejscu

mysql> \. c:/nitm.sql;

Możesz również uzyskać dostęp do pomocy przez

mysql> \?
Lmwangi
źródło
1
To nie zadziałało. Kiedy użyłem mysql> \. c: /nitm.sql; , zwrócił błąd jak Nie udało się otworzyć pliku „c: \ nitm.sql;”, błąd: 2
kushalbhaktajoshi
Próbowałeś tego odmiany? Niektóre aplikacje przestrzegają C: \ nitm.sql
Lmwangi
Zauważ też, że średnik na końcu nie jest wymagany. Więc usuń to. Inną opcją jest „cd c:”, a następnie spróbuj „\. Nitm.sql”
Lmwangi
1
Zastanów się, zanim napiszesz. „cd c:” to polecenie wiersza polecenia systemu DOS, a nie konsoli mySql.
kushalbhaktajoshi
1
mysql> \. ~/Downloads/backups/file.sql działał idealnie w mysql> i od terminalu coosalodpowiedź działała również.
gmuhammad
6

Dla localhost na XAMPP. Otwórz okno cmd i wpisz

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

Uwaga! Brak średnika po -p Wprowadź hasło i wpisz

use database_name;

aby wybrać potrzebną bazę danych.

Sprawdź, czy jest tam twój stół

show tables;

Zaimportuj z pliku sql

source sqlfile.sql;

Umieściłem mój plik w lokalizacji C: \ xampp \ mysql \ bin, aby nie mieszać się z lokalizacjami pliku sql.

Adrian P.
źródło
4

Próbować:

mysql -u username -p database_name < file.sql

Sprawdź opcje MySQL .

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

Akshay Pethani
źródło
3

Nie zapomnij użyć

charset utf8

Jeśli twój plik sql jest w utf-8 :)

Więc musisz zrobić:

cmd.exe

root mysql -u

mysql> charset utf8

mysql> użyj mydbname

mysql> źródło C: \ mójfolder \ mój_plik.sql

Powodzenia ))

Олег Всильдеревьев
źródło
3

W systemie Linux przeszedłem do katalogu zawierającego plik .sql przed uruchomieniem mysql. Kursor systemowy znajduje się teraz w tym samym miejscu co plik i nie potrzebujesz ścieżki. Użyj źródła myData.sql, gdzie moja data jest zastąpiona nazwą twojego pliku.

cd whatever directory

mysql - p

podłącz targetDB

source myData.sql

Gotowe

Robert Quinn
źródło
2

z linii poleceń (cmd.exe, nie z powłoki mysql) spróbuj czegoś takiego:

type c:/nite.sql | mysql -uuser -ppassword dbname
Omry Yadan
źródło
Nie utworzyłem żadnego hasła do bazy danych, więc jest puste w polu hasła. Użyłem powyższej składni, takiej jak ta c: /nitm.sql | mysql -u root -p nitm, ale to również nie działało. Czy możesz mi jeszcze w tym pomóc?
kushalbhaktajoshi
Pominięcie -p również nie działało. Ten błąd wyrzucenia, taki jak „c:”, nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy.
kushalbhaktajoshi
2

Czy twój zrzut zawiera funkcje, które nie są obsługiwane w twojej wersji MySQL? Możesz także spróbować usunąć początkowe (i końcowe) MySQL komentowane instrukcje SET.

Nie wiem, czy twój zrzut pochodzi z Linuksowej wersji MySQL (zakończenia linii)?

Maickel
źródło
Już usunąłem skomentowane przez mysql instrukcje SET. Ale nadal występuje błąd.
kushalbhaktajoshi
Możesz spróbować zalogować się do powłoki poleceń MySQL i instrukcji use then: „source c: \ nite.sql”. Nie zapomnij wybrać właściwej bazy danych.
Maickel
Naprawdę doceniam twój wysiłek. Dzięki.
kushalbhaktajoshi
2

Zainstalowałem mój serwer Wamp na dysku D: więc musisz przejść do następującej ścieżki z wiersza poleceń ur -> (a jeśli zainstalowałeś swój wamp na dysku c:, po prostu zastąp d: wtih c: tutaj)

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"

tutaj root jest użytkownikiem mojego phpmyadmin hasło jest hasłem dla phpmyadmin, więc jeśli nie ustawiłeś żadnego hasła dla roota, po prostu nic nie wpisuj w tym miejscu, db_name to baza danych (dla której bazy danych masz kopię zapasową), backupfile.sql jest plik, z którego chcesz utworzyć kopię zapasową swojej bazy danych, a także możesz zmienić lokalizację pliku kopii zapasowej (d: \ backupfile.sql) z dowolnego innego miejsca na komputerze

Sachin
źródło
1
mysql>c:/nitm.sql;

Spowoduje to zapisanie wyniku polecenia mysql w pliku „nitm.sql;” (Co powinien zrobić „;”?) Zakładając, że masz kopię oryginalnego pliku (zanim go zastąpiłeś):

mysql < c:/nitm.sql
symcbean
źródło
To też nie działało. Wystąpił błąd jak ERROR 1064 <42000>: Wystąpił błąd w składni SQL; sprawdź instrukcję, która odpowiada twojej wersji serwera MySql, aby użyć właściwej składni w pobliżu 'mysql <c: /nitm.sql' w linii 1
kushalbhaktajoshi
1

Eksportuj określone bazy danych

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

spowoduje to eksport baz danych CCR i KIT ...

Zaimportuj wszystkie wyeksportowane bazy danych do konkretnej instancji Mysql (musisz znajdować się tam, gdzie jest plik zrzutu)

djimi:> mysql --user=root --host=localhost --port=3306 --password=test < ccr_kit_local.sql
Musa
źródło
0

W systemie operacyjnym Windows dla mnie działają następujące polecenia.

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

Brak pojedynczych cudzysłowów lub podwójnych cudzysłowów wokół nazwy pliku. Ścieżka będzie zawierać „/” zamiast „\”.

Pabitra Dash
źródło
0

Dla tych z was, którzy mają problem z wykonaniem tego, wypróbowując każdą możliwą odpowiedź, którą można znaleźć w SO. Oto, co działało dla mnie na VPS z systemem Windows 2012 R2:

  1. Umieść plik SQL w dowolnym miejscu, w którym znajduje się bin C:\Program Files\MySQL\MySQL Server 8.0\bin

  2. Otwórz wiersz polecenia systemu Windows (cmd)

  3. Biegać C:\Program Files\MySQL\MySQL Server 8.0\bin > mysql -u [username] -p
  4. Wprowadź hasło
  5. Uruchom polecenie use [database_name];
  6. Zaimportuj plik ze źródłem poleceń C://Program Files//MySQL//MySQL Server 8.0//bin//mydatabasename.sql

Zrobiło to dla mnie, ponieważ wszystko inne zawiodło. To też może ci pomóc.

użytkownik45678
źródło