Jak zaimportować plik SQL za pomocą wiersza poleceń w MySQL?
Mam plik .sql
z eksportem z phpMyAdmin
. Chcę zaimportować go do innego serwera za pomocą wiersza poleceń.
MamWindows Server 2008 R2 instalacja. Umieściłem plik .sql
na napęd C, i próbowałem tego polecenia
database_name < file.sql
To nie działa dostaję błędy składni.
- Jak mogę zaimportować ten plik bez problemu?
- Czy muszę najpierw utworzyć bazę danych?
30 answers
Spróbuj:
mysql -u username -p database_name < file.sql
Sprawdź Opcje MySQL .
Notatka-1: lepiej jest użyć pełnej ścieżki pliku SQL file.sql
.
Uwaga-2: Użyj -R
i --triggers
, Aby zachować procedury i wyzwalacze oryginalnej bazy danych. Domyślnie nie są kopiowane.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-18 09:50:24
Powszechnym zastosowaniem mysqldump jest tworzenie kopii zapasowej całej bazy danych:
shell> mysqldump db_name > backup-file.sql
Możesz załadować plik zrzutu z powrotem na serwer w następujący sposób:
UNIX
shell> mysql db_name < backup-file.sql
To samo w Windows wiersz polecenia:
mysql -p -u [user] [database] < backup-file.sql
PowerShell
C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql"
MySQL command line
mysql> use db_name;
mysql> source backup-file.sql;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-27 17:54:04
Jeśli chodzi o czas potrzebny na importowanie dużych plików: co najważniejsze, zajmuje to więcej czasu, ponieważ domyślnym ustawieniem MySQL jest autocommit = true
. Musisz to ustawić przed zaimportowaniem pliku, a następnie sprawdzić, jak import działa jak klejnot.
Musisz tylko zrobić następujące rzeczy:
mysql> use db_name;
mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-13 14:53:45
Spośród wszystkich odpowiedzi na powyższy problem, ta jest najlepsza:
mysql> use db_name;
mysql> source file_name.sql;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-18 12:12:06
Możemy użyć tego polecenia do zaimportowania SQL z linii poleceń:
mysql -u username -p password db_name < file.sql
Na przykład, jeśli nazwa użytkownika to root
, A hasło to password
. I masz Nazwę bazy danych jako bank
, a plik SQL to bank.sql
. Następnie po prostu zrób tak:
mysql -u root -p password bank < bank.sql
Pamiętaj, gdzie jest Twój plik SQL. Jeśli Twój plik SQL znajduje się w folderze/katalogu Desktop
, przejdź do katalogu desktop i wprowadź polecenie w następujący sposób:
~ ? cd Desktop
~/Desktop ? mysql -u root -p password bank < bank.sql
I jeśli twoje są w katalogu Project
, a Twój plik SQL znajduje się w Desktop
katalog. Jeśli chcesz uzyskać do niego dostęp z katalogu Project
, możesz zrobić tak:
~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 17:51:30
- Otwórz wiersz poleceń MySQL
- wpisz ścieżkę do katalogu mysql bin i naciśnij Enter
- wklej swój plik SQL do folderu
bin
serwera mysql. - Utwórz bazę danych w MySQL.
- Użyj tej konkretnej bazy danych, do której chcesz zaimportować plik SQL.
- wpisz
source databasefilename.sql
i wpisz - Twój plik SQL przesłany pomyślnie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 18:10:20
Jeśli posiadasz już bazę danych, użyj poniższej opcji, aby zaimportować plik dump
lub sql
mysql -u username -p database_name < file.sql
Jeśli nie musisz utworzyć odpowiedniej bazy danych (pustej) w MySQL, aby najpierw zalogować się do konsoli MySQL
, uruchamiając następujące polecenie w terminalu lub w cmd
mysql -u userName -p;
I po wyświetleniu monitu podaj hasło.
Następnie utwórz bazę danych i użyj jej
mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;
Następnie zaimportuj plik sql
lub dump
do bazy danych od
mysql> source pathToYourSQLFile;
Uwaga: Jeśli twój terminal nie znajduje się w miejscu, w którym istnieje plik dump
lub sql
, użyj ścieżki względnej podanej powyżej.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-12 07:01:56
Rozwiązanie, które zadziałało dla mnie jest poniżej:
Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-21 18:31:18
Przejdź do katalogu, w którym masz plik wykonywalny MySQL. -u
dla nazwy użytkownika i -p
aby poprosić o hasło:
C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 17:57:36
Aby zaimportować pojedynczą bazę danych, użyj następującego polecenia.
mysql -u username -p password dbname < dump.sql
Aby zaimportować wiele zrzutów bazy danych, użyj następującego polecenia.
mysql -u username -p password < dump.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-08 17:50:53
Aby zrzut bazy danych do pliku SQL użyj następującego polecenia
mysqldump -u username -p database_name > database_name.sql
Aby zaimportować plik SQL do bazy danych (upewnij się, że znajdujesz się w tym samym katalogu co plik SQL lub podaj pełną ścieżkę do pliku)
mysql u -username -p database_name < database_name.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-04 17:42:50
Myślę, że warto wspomnieć, że możesz również załadować plik gzipped (compressed) za pomocą zcat
Jak pokazano poniżej:
zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-01 10:55:38
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-08 14:09:16
Do importowania wielu plików SQL w tym samym czasie, użyj tego:
# Unix-based solution
for i in *.sql;do mysql -u root -pPassword DataBase < $i;done
Do prostego importowania:
# Unix-based solution
mysql -u root -pPassword DataBase < data.sql
Dla WAMP :
#mysqlVersion replace with your own version
C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql
Dla XAMPP:
C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-21 18:32:30
Nie musisz podawać nazwy bazy danych w wierszu poleceń, jeśliplik sql zawiera polecenia CREATE DATABASE IF NOT EXISTS db_name
i USE db_name
.
Po prostu upewnij się, że łączysz się z użytkownikiem, który ma uprawnienia do tworzenia bazy danych, jeśli baza danych wymieniona w .plik sql nie istnieje.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 09:37:39
Importuj bazę danych
-
Przejdź do napędu:
command: d:
-
MySQL login
command: c:\xampp\mysql\bin\mysql -u root -p
-
Poprosi o pwd. Wpisz go:
pwd
-
Wybierz bazę danych
use DbName;
-
Podaj nazwę pliku
\.DbName.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 09:41:33
Dodaj --force
Opcja :
mysql -u username -p database_name --force < file.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-02 09:40:03
Pomyślałem, że może być przydatny dla tych, którzy używają Mac OS X :
/Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql
Zastąp xampp
na mamp
lub inne serwery www.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 17:58:53
Poniższe polecenie działa dla mnie z linii poleceń (cmd) na Windows 7 na WAMP .
d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 18:14:22
Przejdź do katalogu, w którym masz MySQL.
c:\mysql\bin\> mysql -u username -p password database_name <
filename.sql
Aby zrzucić wszystkie bazy danych, użyj opcji -all-databases
i nie trzeba już podawać nazwy baz danych.
mysqldump -u username -ppassword –all-databases > dump.sql
Lub możesz użyć niektórych klientów GUI, takich jak SQLyog, aby to zrobić.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 17:49:09
Czasami liczy się również zdefiniowany port oraz adres IP serwera tej bazy danych...
mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 17:53:28
Do celów tworzenia kopii zapasowych, Utwórz plik BAT i uruchom go za pomocą Harmonogramu zadań . To zajmie kopię zapasową bazy danych; wystarczy skopiować następujący wiersz i wkleić Notatnik, a następnie zapisać .plik bat i uruchom go w systemie.
@echo off
for /f "tokens=1" %%i in ('date /t') do set DATE_DOW=%%i
for /f "tokens=2" %%i in ('date /t') do set DATE_DAY=%%i
for /f %%i in ('echo %date_day:/=-%') do set DATE_DAY=%%i
for /f %%i in ('time /t') do set DATE_TIME=%%i
for /f %%i in ('echo %date_time::=-%') do set DATE_TIME=%%i
"C:\Program Files\MySQL\mysql server 5.5\bin\mysqldump" -u username -ppassword mysql>C:/%DATE_DAY%_%DATE_TIME%_database.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 17:56:39
Ciągle natykałem się na problem, w którym baza danych nie została utworzona.
I fixed it like this
mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-11 05:02:36
Dla informacji miałem właśnie domyślny root + withoutpassword, nie działa ze wszystkimi powyższymi odpowiedziami.
Utworzyłem nowego Użytkownika z wszystkimi uprawnieniami i hasłem. To działa.
-ppassword bez miejsca.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-29 14:40:42
Używam Windows 10 z Powershell 5 i znalazłem prawie wszystkie "uniksowe" rozwiązania nie działają dla mnie.
> mysql -u[username] [database-name] < my-database.sql
At line:1 char:31
+ mysql -u[username] [database-name] < my-database.sql
+ ~
The '<' operator is reserved for future use.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : RedirectionNotSupported
Kończę używając tego polecenia.
> type my-database.sql | mysql -u[username] -h[localhost] -p [database-name]
I działa idealnie, mam nadzieję, że pomoże.
Dzięki @Francesco Casula ' S odpowiedz btw.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 10:31:37
Podobnie jak https://stackoverflow.com/a/17666285/1888983
Najważniejsze dla mnie różnice:
- baza danych musi istnieć najpierw
- Brak spacji pomiędzy
-p
A hasłem
shell> mysql -u root -ppassword #note: no space between -p and password
mysql> CREATE DATABASE databasename;
mysql> using databasename;
mysql> source /path/to/backup.sql
Uruchamianie Fedory 26 z MariaDB.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-08 19:30:03
mysql -u root -p password -D database_name << import.sql
Użyj pomocy mysql dla szczegółów mysql --help
Myślę, że będą to przydatne opcje w naszym kontekście
[~]$ mysql --help
mysql Ver 14.14 Distrib 5.7.20, for osx10.12 (x86_64) using EditLine wrapper
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Usage: mysql [OPTIONS] [database]
-?, --help Display this help and exit.
-I, --help Synonym for -?
--bind-address=name IP address to bind to.
-D, --database=name Database to use.
--delimiter=name Delimiter to be used.
--default-character-set=name Set the default character set.
-f, --force Continue even if we get an SQL error.
-p, --password[=name] Password to use when connecting to server.
-h, --host=name Connect to host.
-P, --port=# Port number to use for connection or 0 for default to, in order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/services, built-in default (3306).
--protocol=name The protocol to use for connection (tcp, socket, pipe,
-s, --silent Be more silent. Print results with a tab as separator, each row on new line.
-v, --verbose Write more. (-v -v -v gives the table output format).
-V, --version Output version information and exit.
-w, --wait Wait and retry if connection is down.
Co jest zabawne, jeśli importujemy dużą bazę danych i nie mamy paska postępu. Użyj Pipe Viewer i zobacz transfer danych przez pipe
Dla Komputerów Mac, brew install pv
.Dla Debiana / Ubuntu, apt-get install pv
.
Inne, zobacz http://www.ivarch.com/programs/pv.shtml
pv import.sql | mysql -u root -p password -D database_name
1.45GiB 1:50:07 [339.0KiB/s] [=============> ] 14% ETA 11:09:36
1.46GiB 1:50:14 [ 246KiB/s] [=============> ] 14% ETA 11:09:15
1.47GiB 1:53:00 [ 385KiB/s] [=============> ] 14% ETA 11:05:36
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-12-18 18:40:09
Podczas gdy większość odpowiedzi tutaj wspomina tylko o prostym poleceniu
Mysql-u database_user -p [db_name]
Dzisiaj jest dość powszechne, że bazy danych i tabele mają utf8-collation, gdzie to polecenie nie jest wystarczające. Po zestawianiu utf8 w wyeksportowanych tabelach wymagane jest użycie tego polecenia:
Mysql-u database_user-p --default-character-set=utf8 [db_name]
Surley to działa dla inne znaki również, jak pokazać właściwą notację można zobaczyć tutaj:
W jednym komentarzu wspomniano również, że jeśli baza danych nigdy nie istnieje, pusta baza danych musi być utworzona jako pierwsza. W niektórych przypadkach może to być właściwe, ale zależy od Pliku eksportowego. Jeśli wyeksportowany plik zawiera już polecenie utworzenia bazy danych, to baza danych nigdy nie musi być utworzona w oddzielnym kroku, co nawet może powoduje błąd podczas importu. Tak więc przy imporcie zaleca się najpierw zajrzeć do pliku, aby wiedzieć, które polecenia są tam zawarte, przy eksporcie zaleca się zanotować ustawienia, zwłaszcza jeśli plik jest bardzo duży i trudny do odczytania w edytorze.
Jest jeszcze więcej parametrów dla polecenia, które są wymienione i wyjaśnione tutaj:
Https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html
Jeśli korzystasz z innej bazy danych-Wersja rozważ wyszukiwanie odpowiedniej wersji podręcznika. Wymienione linki odnoszą się do MySQL w wersji 5.7.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-07 18:11:40
Poniższe kroki pomagają w załadowaniu file.sql
do bazy danych MySQL.
Krok 1: wgraj file.sql.zip
do dowolnego katalogu i rozpakuj tam
uwaga : sudo apt-get install unzip
: sudo apt-get unzip file.sql.zip
Krok 2: Teraz przejdź do tego katalogu. Przykład: cd /var/www/html
Krok 3: mysql -u username -p database-name < file.sql
Wprowadź hasło i poczekaj, aż przesyłanie zostanie zakończone.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-19 18:12:24
Podanie danych uwierzytelniających w wierszu poleceń nie jest dobrym pomysłem. Powyższe odpowiedzi są świetne, ale zaniedbać wspomnieć
mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql
Gdzie etc / myhost.cnf jest plikiem zawierającym hosta, użytkownika, hasło i unikasz ujawniania hasła w wierszu poleceń. Oto przykład,
[client]
host=hostname.domainname
user=dbusername
password=dbpassword
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-25 01:18:48