Jak zaimportować plik .sql do MySQL?

39

Próbuję zaimportować plik .sql za pomocą programu MySQL Workbench i pojawia się ten błąd:

ERROR 1046 (3D000) at line 28: No database selected

Najpierw utworzyłem pustą bazę danych o tej samej nazwie co plik .sql, ale to nie działa. Próbowałem również to zrobić za pomocą klienta komend mysql, używając:

mysqldump -u root database > file.sql 

Ale mówi, że mam błąd w mojej składni SQL. Ponadto nie znam ścieżki, w której muszę ustawić plik.sql.

RolandoMySQLDBA
źródło
Byłem w stanie zaimportować mysqldump za pomocą poniższego mysql> użyj mojej bazy danych; mysql> source plik_sql.sql;
Giridharan Venugopal

Odpowiedzi:

49

Eksport:

mysqldump -u username –-password=your_password database_name > file.sql

Import:

mysql -u username –-password=your_password database_name < file.sql 
juergen d
źródło
9
Musi istnieć bez przestrzeni pomiędzy -pipassword
tombom
Co jeśli nie mam hasła?
Następnie pomiń parametr hasła.
Kazimieras Aliulis
Piping ( mysqldump db -uuser -ppass|mysql new_db -uuser -ppass) eliminuje potrzebę używania pliku pośredniego.
Pacerier,
2
Myślę, że baza danych musi istnieć w MySQL.
Noumenon,
28

Możesz również zaimportować plik .sql jako już podłączony użytkownik do bazy danych:

mysql> use your_database_name;

mysql> source file.sql;
tdaget
źródło
3
źródło D: /path/file.sql; działa świetnie! pamiętaj przedni ukośnik zamiast tylnego.
Imdad,
6

Innym sposobem importowania plików zrzutu, gdy source <filename>nie działa, jest wykonanie następujących czynności:

Wysypisko

~> mysqldump --user=<user> --password=<password> <db_name> > <export_file_name>.sql

Import

> mysql -u <user> -p <pass> <db_name>
mysql> USE <db_name>;  (if you didn't already select)
mysql> \. ~/<export_file_name>.sql
Mike S.
źródło
5

Juergen D's odpowiedź jest oczywiście zgodne z prawdą; jednak biorąc pod uwagę komunikat o błędzie, możesz również dodać do pliku SQL w wierszu początkowym, np .:

USE your_database_name;

To powinno także wykonać zadanie i umożliwić importowanie w Workbench.

Podczas używania mysqldumpwyeksportowany plik zostanie zapisany w bieżącym folderze. Nie ma znaczenia, jaką to ścieżkę. Tylko podczas importowania z wiersza poleceń musisz znajdować się w tym samym folderze lub podać ścieżkę do pliku. Nie dzieje się tak jednak w przypadku korzystania z narzędzia wizualnego, takiego jak Workbench, w którym i tak należy wybrać plik z drzewa folderów.

Społeczność
źródło
2

W poleceniu brakuje hasła. Użyj następujących.

mysql --u [username] --password=[password] [database name] < [dump file]

źródło
1

W systemie Windows w katalogu instalacyjnym serwera MySQL (np. C:\Program Files\MySQL\MySQL Server 5.5) my.ini fileDodaj następujący wiersz [mysqld]w sekcji serwer:

max_allowed_packet = 16M

I zapisz zmiany. (Jeśli nie masz możliwości zapisywania, skopiuj i wklej na pulpicie i ponownie edytuj, a następnie wklej w tym samym miejscu).

Następnie zrestartuj serwer MySQL.

użytkownik24439
źródło