it-swarm-eu.dev

Jak importovat SQL soubor pomocí příkazového řádku v MySQL?

Mám soubor .sql s exportem z phpMyAdmin. Chci jej importovat do jiného serveru pomocí příkazového řádku.

Mám Windows Server 2008 R2 instalaci. Soubor .sql jsem umístil na C disk a vyzkoušel jsem tento příkaz

database_name < file.sql

To nefunguje Dostávám chyby syntaxe.

  • Jak lze tento soubor bez problému importovat?
  • Musím nejprve vytvořit databázi?
1511
Jaylen

Snaž se:

mysql -u username -p database_name < file.sql

Zkontrolujte Možnosti MySQL .

Poznámka-1: Je lepší použít úplnou cestu k souboru SQL file.sql.

Poznámka-2: Použijte -R a --triggers k udržování rutin a spouštěčů původní databáze. Ve výchozím nastavení se nekopírují.

Poznámka-3 Možná budete muset vytvořit (prázdnou) databázi z mysql, pokud již neexistuje a exportovaný SQL neobsahuje CREATE DATABASE (exportováno s volbou --no-create-db nebo -n) předtím, než ji můžete importovat.

2955
bansi

Běžné použití mysqldump je pro zálohování celé databáze:

Shell> mysqldump db_name > backup-file.sql

Soubor výpisu můžete načíst zpět na server takto:

UNIX

Shell> mysql db_name < backup-file.sql

Stejný příkaz Windows Prompt:

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

PowerShell

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

MySQL příkazový řádek

mysql> use db_name;
mysql> source backup-file.sql;
612
vladkras

Pokud jde o čas potřebný pro import velkých souborů: nejdůležitější je, že trvá déle, protože výchozí nastavení MySQL je autocommit = true. Musíte ho vypnout před importem souboru a poté zkontrolovat, jak import funguje jako klenot.

Stačí udělat následující:

mysql> use db_name;

mysql> SET autocommit=0 ; source the_sql_file.sql ; COMMIT ;
252
Paresh Behede

Ze všech výše uvedených odpovědí je pro výše uvedený problém to nejlepší:

 mysql> use db_name;
 mysql> source file_name.sql;
92
Manoj Kumar

Tento příkaz můžeme použít k importu SQL z příkazového řádku:

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

Pokud je například uživatelské jméno root a heslo je password. A máte jméno databáze jako bank a soubor SQL je bank.sql. Pak to prostě udělejte takto:

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

Nezapomeňte, kde je váš soubor SQL. Pokud je váš soubor SQL ve složce Desktop/adresář, přejděte do adresáře plochy a zadejte příkaz takto:

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

A pokud jsou vaše soubory v adresáři Project a váš soubor SQL je v adresáři Desktop. Chcete-li k němu přistupovat z adresáře Project, můžete tak učinit takto:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
60
Amrit Dhungana
  1. Otevřete příkazový řádek MySQL
  2. Zadejte cestu k adresáři bin mysql a stiskněte Enter
  3. Vložte soubor SQL do složky bin na serveru mysql.
  4. Vytvořte databázi v MySQL.
  5. Použijte konkrétní databázi, do které chcete importovat soubor SQL.
  6. Zadejte source databasefilename.sqlEnter
  7. Váš SQL soubor úspěšně nahrál.
57
user4412947

Pokud již máte databázi, použijte následující příkaz k importu souboru dump nebo sql

mysql -u username -p database_name < file.sql

pokud nepotřebujete vytvořit v databázi MySQL příslušnou databázi (prázdnou), nejprve se přihlaste do konzoly MySQL spuštěním následujícího příkazu v terminálu nebo v cmd

mysql -u userName -p;

a po zobrazení výzvy zadejte heslo.

Dále vytvořte databázi a použijte ji

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

Poté importujte soubor sql nebo dump do databáze z

mysql> source pathToYourSQLFile;

Poznámka: Pokud váš terminál není v místě, kde existuje soubor dump nebo sql, použijte relativní cestu výše.

44

Řešení, které pro mě fungovalo, je níže:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
40
Shiks

Přejděte do adresáře, kde máte spustitelný soubor MySQL. -u pro uživatelské jméno a -p pro výzvu k zadání hesla:

C:\xampp\mysql\bin>mysql -u username -ppassword databasename < C:\file.sql
32
Tanmay Patel

Chcete-li importovat jednu databázi, použijte následující příkaz.

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

Chcete-li importovat více výpisů databáze, použijte následující příkaz.

mysql -u username -p password < dump.sql
24
Leopathu

Myslím, že stojí za zmínku, že můžete také načíst soubor gzipped (komprimovaný) soubor s zcat tak, jak je uvedeno níže:

zcat database_file.sql.gz | mysql -u username -p -h localhost database_name
23
Francesco Casula

Chcete-li vypsat databázi do souboru SQL, použijte následující příkaz

mysqldump -u username -p database_name > database_name.sql

Import souboru SQL do databáze (ujistěte se, že jste ve stejném adresáři jako soubor SQL nebo zadejte úplnou cestu k souboru)

mysql -u username -p database_name < database_name.sql
23
Adeleke Akinade
mysql --user=[user] --password=[password] [database] < news_ml_all.sql
15
user3546602

Nejjednodušší způsob importu do schématu:

Přihlaste se do mysql a uveďte níže uvedené příkazy. 

mysql> use your_db_name;

mysql> source /opt/file.sql;
15
Ammad

Pro import více souborů SQL najednou použijte následující postup:

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

Pro jednoduchý import:

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

Pro wamp _ :

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

Pro XAMPP:

C:\xampp\mysql\bin\mysql -u root -pPassword DataBase < data.sql
13

Pokud soubor .sql obsahuje příkazy CREATE DATABASE IF NOT EXISTS db_name a USE db_name, nemusíte na příkazovém řádku zadávat název databáze.

Ujistěte se, že se připojujete k uživateli, který má oprávnění k vytvoření databáze, pokud databáze uvedená v souboru .sql neexistuje.

12
Reuben

Import databáze

  1. Přejít na disk:

    command: d:
    
  2. MySQL přihlášení

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. Bude požadovat pwd. Zadejte:

    pwd
    
  4. Vyberte databázi

    use DbName;
    
  5. Zadejte název souboru

    \.DbName.sql
    
11
Pritam Chaudhari

Přidat možnost --force :

mysql -u username -p database_name --force < file.sql
9
ktaria

Přejděte do adresáře, kde máte MySQL.

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

Také pro výpis všech databází použijte volbu -all-databases a název databáze již není třeba zadávat.

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

Nebo můžete použít některé GUI klienty, jako je SQLyog.

8
Sathish D

Následující příkaz pracuje pro mě z příkazového řádku (cmd) dne Windows 7 na WAMP .

d:/wamp/bin/mysql/mysql5.6.17/bin/mysql.exe -u root -p db_name < database.sql
7
victor

Myslel jsem, že by to mohlo být užitečné pro ty, kteří používají Mac OS X :

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

Nahraďte xamppmamp nebo jinými webovými servery.

7
Giri

Zatímco většina odpovědí zde jen zmiňuje jednoduchý příkaz

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

dnes je celkem běžné, že databáze a tabulky mají utf8-řazení, kde tento příkaz není dostačující. S utf8-řazení v exportovaných tabulkách je nutné použít tento příkaz:

mysql -u database_user -p --default-character-set = utf8 [db_name] <database_file.sql

Surley to funguje i pro jiné charsety, jak ukázat správné noty lze vidět zde:

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

Jeden komentář zmínil také, že pokud databáze nikdy neexistuje, musela být nejprve vytvořena prázdná databáze. To může být v některých případech správné, ale závisí na exportním souboru. Pokud exportovaný soubor obsahuje již příkaz k vytvoření databáze, databáze nemusí být nikdy vytvořena v samostatném kroku, který by mohl způsobit chybu při importu. Takže při importu je vhodné se nejprve podívat do souboru, abych věděl, které příkazy jsou tam zahrnuty, při exportu je vhodné si všimnout nastavení, zejména pokud je soubor v editoru velmi velký a těžko čitelný.

Pro tento příkaz je ještě více parametrů, které jsou uvedeny a vysvětleny zde:

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

Pokud používáte jinou verzi databáze, zvažte také vyhledávání odpovídající verze manuálu. Uvedené odkazy odkazují na verzi MySQL 5.7.

6
David
mysql -u root -p password -D database_name << import.sql

Podrobnosti naleznete v nápovědě mysql mysql --help

Myslím, že to budou v našem kontextu užitečné možnosti

[~]$ 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 je zábavné, pokud importujeme rozsáhlou databázi a nemáme bar s průběhem. Použijte Prohlížeč potrubí a podívejte se na přenos dat přes potrubí

Pro Mac, brew install pv Pro Debian/Ubuntu, apt-get install pv. Ostatní, odkazujte na 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
6
Siva Praveen

Někdy je definován port a také adresa serveru IP této databáze.

mysql -u user -p user -h <Server IP> -P<port> (DBNAME) < DB.sql 
5
JohnSharath

Stále jsem běžel do problému, kde nebyla vytvořena databáze.

Opravil jsem to takhle

mysql -u root -e "CREATE DATABASE db_name"
mysql db_name --force < import_script.sql
5

Pro účely zálohování vytvořte soubor BAT a spusťte tento soubor BAT pomocí Plánovač úloh . To bude mít zálohu databáze; stačí zkopírovat následující řádek a vložit do Poznámkový blok a pak soubor .bat uložit a spustit ve vašem systému.

@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
user3728517

Podobně jako https://stackoverflow.com/a/17666285/1888983
Klíčové rozdíly pro mě:

  1. Databáze musí existovat jako první
  2. Žádné mezery mezi -p a heslem

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

Spuštění Fedory 26 s MariaDB.

4
jozxyqk

Pro informaci jsem měl pouze výchozí root + withoutpassword, to nefungovalo se všemi výše uvedenými odpověďmi. 

  • Vytvořil jsem nového uživatele se všemi oprávněními a heslem. Funguje to. 

  • -ppassword BEZ SPACE. 

4
Paul Leclerc

Používám Windows 10 s Powershell 5 a našel jsem téměř všechna "unixová" řešení, která nefungují pro mě.

> 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

Skončím s použitím tohoto příkazu.

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

a funguje to perfektně, doufejme, že to pomůže.

Díky @ Francesco Casula 's odpověď btw.

4
Fery Wardiyanto

Následující kroky pomáhají nahrát soubor file.sql do databáze MySQL.

Krok 1: Nahrajte soubor file.sql.Zip do libovolného adresáře a rozbalte jej 
Poznámka : Sudo apt-get install unzip : Sudo apt-get unzip file.sql.Zip
Krok 2: Nyní přejděte do tohoto adresáře. Příklad: cd /var/www/html

Krok 3: mysql -u username -p database-name < file.sql
Zadejte heslo a počkejte na dokončení nahrávání.

4
Ramesh Sinha

Poskytování pověření na příkazovém řádku není dobrý nápad. Výše uvedené odpovědi jsou skvělé, ale zanedbávají zmínku

mysql --defaults-extra-file=etc/myhost.cnf database_name < file.sql

Kde etc/myhost.cnf je soubor, který obsahuje hostitele, uživatele, heslo a vyhnete se vystavení hesla na příkazovém řádku. Zde je ukázka,

[client]
Host=hostname.domainname
user=dbusername
password=dbpassword
3
ChuckCottrill

Import do databáze: -

mysql -u uživatelské jméno -p název_databáze </ cesta k souboru/název_souboru.sql

Export z databáze: -

mysqldump -u uživatelské jméno -p název_databáze>/file path/file_name.sql

po těchto příkazech bude Prompt požádat o heslo mysql

3
NeeruSingh

Při importu dat do ukotvitelného kontejneru použijte následující příkaz. Upravte uživatele (-u), databázi (-D), port (-P) a hostitele (-h) tak, aby vyhovovaly vaší konfiguraci.

mysql -u root -D database_name -P 4406 -h localhost --protocol=tcp -p < sample_dump.sql
2
Hamfri

Pokud používáte MAMP na Mac OS X, může to být užitečné:

/applications/MAMP/library/bin/mysql -u MYSQL_USER -p DATABASE_NAME < path/to/database_sql/FILE.sql

MYSQL_USER je ve výchozím nastavení root.

1
HowardDuck

Exportovat konkrétní databáze:

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

Tím se exportují databáze CCR a KIT ...

Import všech exportovaných databází do určité instance MySQL (musíte být tam, kde je soubor s výpisem):

  djimi:> mysql --user=root --Host=localhost --port=3306 --password=test < ccr_kit_local.sql
1
Musa

Import databáze prostřednictvím terminálu

Přejděte do složky, kde je umístěn soubor sql

příkaz spustit níže

mysql -u database_user_name -p database_name < sql_file_name.sql

Vyžádá si heslo. zadejte heslo databáze. Import dat v databázi bude trvat několik sekund.

1
Dev Semicolon

Například

Nainstaloval jsem software na C:\xampp\mysql\bin A můj soubor je na adrese C:\Users\file.sql

Stačí nastavit username a database_name

Poznámka: Nejdříve musíte ručně vytvořit databázi (database_name)

Spusťte tento příkaz:

cd C:\xampp\mysql\bin && mysql -u username -p database_name < C:\Users\file.sql

A pak zadejte heslo ???? 

1

Pokud má vaše složka více souborů SQL a nainstalovali jste Git Bash , můžete pomocí tohoto příkazu importovat více souborů:

cd /my-project/data

cat *.sql | /c/xampp/mysql/bin/mysql -u root -p 1234 myProjectDbName
1
o0omycomputero0o

Z oken můžete pomocí příkazu importovat data z výpisu sql

C: Programové soubory MySQL MySQL Server 5.7 bin> mysql -u <> -p <> DBName <filelocation

kde -u následuje uživatelské jméno a -p následované heslem Mysql. Heslo lze přeskočit v příkazu, jak je možné zadat na Prompt.

1
Ripudaman Singh

Můžete zkusit tento dotaz.

Export: Mysqldump -u uživatelské jméno –-password = your_password database_name> file.sql

Import: Mysql -u uživatelské jméno –-password = your_password database_name <file.sql

a podrobně následující odkaz:

https://chartio.com/resources/tutorials/importing-from- a-exportní-to-soubory-využití-mysql-command-line/

1

Pokud importujete do místního databázového serveru, můžete provést následující akce:

mysql -u database_user -p < database_file.sql

Pro vzdálený databázový server proveďte následující:

mysql -u database_user -p -h remote_server_url < database_file.sql
0

Můžeš použít:

mysql -u<user> -p<pass> <db> < db.sql

příklad:

mysql -uroot -proot db < db.sql

sbohem!