Kaip importuoti SQL failą naudodami MySQL komandinę eilutę?

Turiu .sql failą, eksportuojantį iš phpMyAdmin . Noriu importuoti jį į kitą serverį, naudojant komandinę eilutę.

Įdiegiau „ Windows Server 2008 R2“. .sql failą į C diską ir bandžiau šią komandą.

 database_name < file.sql 

Jis neveikia, gaunu sintaksės klaidas.

  • Kaip importuoti šį failą be problemų?
  • Ar turiu pirmiausia sukurti duomenų bazę?
1437 m
16 июля '13 в 3:43 2013-07-16 03:43 Jaylen paklausė liepos 16 d . 13:43 2013-07-16 03:43
@ 40 atsakymų
  • 1
  • 2

Pabandykite:

 mysql -u username -p database_name < file.sql 

Patikrinkite MySQL nustatymus .

Pastaba-1: geriau naudoti visą kelią į SQL failą file.sql .

2 pastaba: naudokite -R ir --triggers kad išsaugotumėte šaltinio duomenų bazės procedūras ir trigerius. Jie nėra nukopijuojami pagal numatytuosius nustatymus.

3 pastaba Gali tekti sukurti (tuščią) duomenų bazę iš „mysql“, jei ji dar nėra ir eksportuotame SQL nėra CREATE DATABASE (eksportuojama su --no-create-db arba -n ), prieš jį importuojant.

2809
16 июля '13 в 3:48 2013-07-16 03:48 atsakymas pateikiamas bansi 16 liepos 13 d. 3:48 2013-07-16 03:48

Įprastas mysqldump naudojimas visai duomenų bazei kurti yra:

 shell> mysqldump db_name > backup-file.sql 

Jūs galite įkelti „dump“ failą į serverį taip:

UNIX

 shell> mysql db_name < backup-file.sql 

Tas pats Windows komandų eilutėje:

border=0
 mysql -p -u [user] [database] < backup-file.sql 

Powershell

 C:\> cmd.exe /c "mysql -u root -p db_name < backup-file.sql" 

„MySQL“ komandų eilutė

 mysql> use db_name; mysql> source backup-file.sql; 
577
16 июля '13 в 3:48 2013-07-16 03:48 atsakymas duotas vladkrasai liepos 16 d. 13:48 2013-07-16 03:48

Kalbant apie laiką, praleistą didelių failų importavimui: svarbiausia, kad užtrunka daugiau laiko, nes pagal nutylėjimą „MySQL“ yra nustatytas kaip autocommit = true . Turite ją įdiegti prieš importuodami failą ir patikrinkite, kaip importas veikia kaip perlas.

Jums tereikia atlikti šiuos veiksmus:

 mysql> use db_name; mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ; 
243
04 апр. Atsakymas pateikiamas Paresh Behede 04 balandžio. 2014-04-04 09:47 '14 at 9:47 2014-04-04 09:47

Tarp visų atsakymų, susijusių su aukščiau pateikta problema, tai yra geriausias variantas:

  mysql> use db_name; mysql> source file_name.sql; 
86
18 авг. Manoj Kumar atsakymas 18 rug. 2016-08-18 15:12 '16 at 15:12 2016-08-18 15:12

Šią komandą galime naudoti importuojant SQL iš komandinės eilutės:

 mysql -u username -p password db_name < file.sql 

Pavyzdžiui, jei naudotojo vardas yra root ir password . Ir turite duomenų bazės pavadinimą kaip bank , o SQL failą - bank.sql . Tada atlikite šiuos veiksmus:

 mysql -u root -p password bank < bank.sql 

Prisiminkite, kur yra jūsų SQL failas. Jei jūsų SQL failas yra Desktop / kataloge, eikite į darbalaukio katalogą ir įveskite komandą taip:

 ~ ? cd Desktop ~/Desktop ? mysql -u root -p password bank < bank.sql 

Ir jei jie yra Project kataloge, o jūsų SQL failas yra Desktop kataloge. Jei norite jį pasiekti iš Project katalogo, galite tai padaryti taip:

 ~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql 
57
11 марта '14 в 14:26 2014-03-11 14:26 atsakymas pateikiamas „ Amrit Dhungana“ kovo 14 d. 14:26 2014-03-11 14:26
  • Atidarykite „MySQL“ komandų eilutę
  • Įveskite kelią į bin katalogą mysql ir paspauskite Enter
  • Įklijuokite SQL failą į mysql serverio bin aplanką.
  • Sukurti MySQL duomenų bazę.
  • Naudokite šią konkrečią duomenų bazę, kurioje norite importuoti SQL failą.
  • Įveskite source databasefilename.sql ir Enter
  • Sėkmingai įkeliant SQL failą.
51
02 янв. atsakymą pateikė user4412947 02 Jan. 2015-01-02 18:58 '15, 18:58, 2015-01-02 18:58

Jei jau turite duomenų bazę, naudokite „ dump arba „ sql failą importuoti.

 mysql -u username -p database_name < file.sql 

jei jums nereikia sukurti atitinkamos duomenų bazės (tuščios) MySQL, tai padaryti, pirmiausia prisijunkite prie MySQL konsolės vykdydami šią komandą terminale arba cmd

 mysql -u userName -p; 

ir, kai raginama, įveskite slaptažodį.

Tada sukurkite duomenų bazę ir naudokite ją.

 mysql>create database yourDatabaseName; mysql>use yourDatabaseName; 

Tada importuokite sql arba dump failą iš duomenų bazės

 mysql> source pathToYourSQLFile; 

Pastaba Jei jūsų terminalas nėra toje vietoje, kur egzistuoja dump arba sql failas, naudokite aukščiau nurodytą santykinį kelią.

40
01 сент. Atsakymą pateikė Kasun Siyambalapitiya 01 rugsėjis. 2017-09-01 13:21 '17 13:21 pm 2017-09-01 13:21

Sprendimas, kuris man teko toliau:

 Use your_database_name; SOURCE path_to_db_sql_file_on_your_local; 
39
24 авг. atsakymas duotas Shiks 24 rug . 2016-08-24 09:02 '16 at 9:02 am 2016-08-24 09:02

Eikite į katalogą, kuriame yra vykdoma MySQL. -u naudotojo -p ir -p slaptažodžio užklausai:

 C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql 
31
08 сент. Atsakymas, kurį pateikė Tanmay Patel 08 Sep. 2014-09-08 15:17 '14 at 15:17 2014-09-08 15:17

Jei norite importuoti vieną duomenų bazę, naudokite šią komandą.

 mysql -u username -p password dbname < dump.sql 

Jei norite importuoti kelis duomenų bazių sąvartynus, naudokite šią komandą.

 mysql -u username -p password < dump.sql 
23
25 мая '15 в 8:14 2015-05-25 08:14 atsakė Leopathu gegužės 25 d. 15, 8:14 2015-05-25 08:14

Manau, verta paminėti, kad galite įkelti „ gzip“ (suspaustą) failą naudodami „ zcat , kaip parodyta toliau:

19
24 авг. Francesco Casula atsakymas, pateiktas rugpjūčio 24 d 2016-08-24 16:45 '16 at 16:45 pm 2016-08-24 16:45

Norėdami išleisti duomenų bazę į SQL failą, naudokite šią komandą.

 mysqldump -u username -p database_name > database_name.sql 

Jei norite importuoti SQL failą į duomenų bazę (įsitikinkite, kad esate tame pačiame kataloge, kaip ir SQL failas, arba nurodykite visą failo kelią)

 mysql -u username -p database_name < database_name.sql 
18
04 янв. atsakymą pateikė Adeleke Akinade 04 Jan 2017-01-04 20:42 '17 at 8:42 pm 2017-01-04 20:42
 mysql --user=[user] --password=[password] [database] < news_ml_all.sql 
14
17 апр. atsakymą pateikė vartotojo3546602 balandžio 17 d 2014-04-17 22:20 '14, 10:20 val. 2014-04-17 22:20

Jei norite importuoti kelis SQL failus vienu metu, naudokite:

 # Unix-based solution for i in *.sql;do mysql -u root -pPassword DataBase < $i;done 

Paprastai importuoti:

 # Unix-based solution mysql -u root -pPassword DataBase < data.sql 

WAMP :

 #mysqlVersion replace with your own version C:\wamp\bin\mysql\mysqlVersion\bin\mysql.exe -u root -pPassword DataBase < data.sql 

XAMPP:

 C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql 
12
16 мая '15 в 14:13 2015-05-16 14:13 Abdul Rehman Janjua atsakymas gegužės 16, 15 d. 14:13 2015-05-16 14:13

Jei .sql faile yra CREATE DATABASE IF NOT EXISTS db_name ir USE db_name komandų eilutėje nereikia nurodyti duomenų bazės pavadinimo.

Tiesiog įsitikinkite, kad prisijungiate prie naudotojo, turinčio leidimų kurti duomenų bazę, jei nėra .sql faile nurodytos duomenų bazės.

11
03 сент. atsakymas pateikiamas Reuben 03 rugsėjis. 2015-09-03 02:41 '15, 02:41 am 2015-09-03 02:41

Importuoti duomenų bazę

  • Eiti į diską:

     command: d: 
  • „MySQL“ prisijungimas

     command: c:\xampp\mysql\bin\mysql -u root -p 
  • Jis paprašys pwd. Įveskite jį:

     pwd 
  • Pasirinkite duomenų bazę

     use DbName; 
  • Įveskite failo pavadinimą

     \.DbName.sql 
10
31 июля '14 в 8:55 2014-07-31 08:55 atsakymą pristato „ Pritam Chaudhari “ liepos 14 d. 14 val. 8:55 2014-07-31 08:55

Lengviausias būdas importuoti į schemą:

Prisijunkite prie mysql ir vykdykite toliau nurodytas komandas.

 mysql> use your_db_name; mysql> source /opt/file.sql; 
9
07 нояб. atsakymas pateiktas Ammad 07.11 . 2018-11-07 04:59 '18 at 4:59 2018-07-07 04:59

Pridėti parametrą --force :

 mysql -u username -p database_name --force < file.sql 
8
24 авг. atsakymą pateikė ktaria 24 rug . 2014-08-24 21:17 '14, 21:17, 2014-08-24 21:17

Ši komanda veikia man iš komandų eilutės (cmd) „Windows 7“ sistemoje „ WAMP“ .

 d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql 
7
11 марта '15 в 18:38 2015-03-11 18:38 atsakymas įteiktas pergalė 11 d., 15 val. 18:38 2015-03-11 18:38

Pakeiskite į katalogą, kuriame yra „MySQL“.

  c:\mysql\bin\> mysql -u username -p password database_name < filename.sql 

Be to, norėdami pašalinti visas duomenų bazes, naudokite „ -all-databases parinktį ir jums nebereikia nurodyti duomenų bazės pavadinimo.

 mysqldump -u username -ppassword –all-databases > dump.sql 

Arba galite naudoti kai kuriuos GUI klientus, tokius kaip SQLyog.

7
16 июля '13 в 7:26 2013-07-16 07:26 atsakymą pateikė Sathish D, liepos 16, 13, 07:26, 2013-07-16 07:26

Maniau, kad tai gali būti naudinga tiems, kurie naudoja „ Mac OS X“ :

 /Applications/xampp/xamppfiles/bin/mysql -u root -p database < database.sql 

Pakeiskite „ xampp su „ mamp arba kitais žiniatinklio serveriais.

7
09 нояб. Giri atsakymas, lapkričio 9 d. 2014-11-09 21:49 '14, 21:49 2014-11-09 21:49

Nors dauguma čia pateiktų atsakymų tiesiog nurodo paprastą komandą.

mysql -u database_user -p [db_name] <database_file.sql

Šiandien yra gana paplitusi, kad duomenų bazėse ir lentelėse yra „utf8“ žemėlapiai, kurių nepakanka. Turėdami utf8 žemėlapių eksportavimą, reikia naudoti šią komandą:

mysql -u database_user -p - numatytasis simbolių rinkinys = utf8 [db_name] <database_file.sql

„Surley“ veikia kitiems koduotojams, kaip parodyti teisingą įrašą čia:

https://dev.mysql.com/doc/refman/5.7/en/show-collation.html

Vienas komentaras taip pat paminėjo, kad jei duomenų bazė niekada nebus, pirmiausia turite sukurti tuščią duomenų bazę. Kai kuriais atvejais tai gali būti teisinga, tačiau priklauso nuo eksporto failo. Jei eksportuotas failas jau turi komandą sukurti duomenų bazę, duomenų bazė niekada neturėtų būti sukurta atskirame etape, kuris netgi gali sukelti klaidą importuojant. Todėl, importuojant, patartina pirmiausia pažiūrėti į failą, kad sužinotumėte, kurios komandos yra įtrauktos į jį, eksportuojant patartina pažymėti nustatymus, ypač jei failas yra labai didelis ir sunku skaityti redaktoriuje.

Yra keletas papildomų komandos parametrų, kurie yra išvardyti ir paaiškinti čia:

https://dev.mysql.com/doc/refman/5.7/en/mysql-command-options.html

Jei naudojate kitą duomenų bazės versiją, pabandykite ieškoti atitinkamos vadovo versijos. Minėtos nuorodos yra susijusios su MySQL 5.7 versija.

5
22 марта '18 в 0:04 2018-03-22 00:04 atsakymą davė Dovydas kovo 22 d. 18 d. 0:04 2018-03-22 00:04

Norėdami sukurti atsarginę kopiją, sukurkite „BAT“ failą ir paleiskite šią „BAT“ failą, naudodami užduočių planavimo priemonę . Ji sukurs duomenų bazės kopiją; tiesiog nukopijuokite šią eilutę ir įklijuokite į Notepad , tada išsaugokite .bat failą ir paleiskite ją savo sistemoje.

 @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 
5
25 авг. atsakymą pateikė vartotojo3728517 25 rug . 2014-08-25 14:02 '14, 14:02 2014-08-25 14:02

Kartais taip pat nustatomas uostas, kaip ir šio duomenų bazės serverio IP adresas ...

 mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 
5
13 мая '14 в 10:49 2014-05-13 10:49 JohnSharath atsakymas gegužės 13 d. 14 d. 10:49 2014-05-13 10:49

Aš ir toliau susidūriau su problema, kai nebuvo sukurta duomenų bazė.

Aš tai pataisiau:

 mysql -u root -e "CREATE DATABASE db_name" mysql db_name --force < import_script.sql 
5
11 авг. David Silva Smith atsakymas 11 rug 2016-08-11 08:02 '16 at 8:02 am 2016-08-11 08:02

Aš naudoju „Windows 10“ su „Powershell 5“, ir aš rasiu beveik visus „unix“ sprendimus, kurie man neveikia.

 > 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 

Baigiu naudoti šią komandą.

 > type my-database.sql | mysql -u[username] -h[localhost] -p [database-name] 

ir tai veikia gerai, tikiuosi, kad tai padės.

Ačiū @Francesco Casula atsakymas Beje.

4
13 марта '17 в 1:33 2017-03-13 01:33 atsakymą pateikė Fery Wardiyanto kovo 13 d. 17 val. 1:33 2017-03-13 01:33

Panašus į ngn-wiki.ru.site/questions/11186 / ...
Pagrindiniai skirtumai man yra:

  • Pirmiausia turi būti duomenų bazė.
  • Tarp -p ir slaptažodžio nėra tarpo

 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 

Vykdykite „Fedora 26“ su „MariaDB“.

4
08 авг. atsakymas, kurį pateikė jozxyqk 08 rug . 2017-08-08 22:30 '17 bent 22:30 pm 2017-08-08 22:30

Šie veiksmai padės file.sql į MySQL duomenų bazę įkelti.

1 žingsnis: Atsisiųskite file.sql.zip į bet kurį katalogą ir file.sql.zip ten
Pastaba : sudo apt-get install unzip : sudo apt-get unzip file.sql.zip
2 žingsnis. Dabar eikite į šį katalogą. Pavyzdys: cd /var/www/html

3 žingsnis: mysql -u username -p database-name < file.sql
Įveskite slaptažodį ir palaukite, kol bus baigtas atsisiuntimas.

4
16 янв. Atsakymas pateikiamas Ramesh Sinha 16 sausis 2015-01-16 13:22 '15, 13:22, 2015-01-16 13:22

Norėdami gauti informacijos, aš tiesiog turėjau šaknį + be slaptažodžio, jis neveikė su visais aukščiau pateiktais atsakymais.

  • Sukūriau naują naudotoją su visomis privilegijomis ir slaptažodžiu. Jis veikia.

  • -spassword be vietos.

4
29 дек. Pauliaus Leclerco atsakymas gruodžio 29 d. 2016-12-29 17:40 '17, 17:40 pm 2016-12-29 17:40
 mysql -u root -p password -D database_name << import.sql 

Norėdami gauti daugiau informacijos, naudokite mysql --help help.

Manau, kad tai bus naudingi mūsų kontekste.

 [~]$ 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. 

tai įdomu, jei importuojame didelę duomenų bazę ir neturime pažangos juostos. Naudokite „Pipe Viewer“ ir stebėkite duomenų perdavimą per kanalą.

„Mac“: brew install pv Debian / Ubuntu: apt-get install pv . Kiti susisiekia 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 
4
18 дек. Atsakymą Siva Praveen pateikė gruodžio 18 d. 2017-12-18 21:40 '17 21:40 2017-12-18 21:40
  • 1
  • 2

Kiti klausimai apie žymes arba Užduoti klausimą