it-swarm-id.com

Bagaimana cara mengimpor file SQL menggunakan baris perintah di MySQL?

Saya memiliki file .sql dengan ekspor dari phpMyAdmin. Saya ingin mengimpornya ke server yang berbeda menggunakan baris perintah.

Saya memiliki instalasi Windows Server 2008 R2. Saya menempatkan file .sql pada drive C, dan saya mencoba perintah ini

database_name < file.sql

Tidak berfungsi saya mendapatkan kesalahan sintaksis.

  • Bagaimana saya bisa mengimpor file ini tanpa masalah?
  • Apakah saya perlu membuat database terlebih dahulu?
1511
Jaylen

Mencoba:

mysql -u username -p database_name < file.sql

Periksa Opsi MySQL .

Note-1: Lebih baik menggunakan path lengkap dari file SQL file.sql.

Note-2: Gunakan -R dan --triggers untuk menjaga rutinitas dan pemicu basis data asli. Mereka tidak disalin secara default.

Note-3 Anda mungkin harus membuat database (kosong) dari mysql jika belum ada dan SQL yang diekspor tidak mengandung CREATE DATABASE (diekspor dengan opsi --no-create-db atau -n), sebelum Anda dapat mengimpornya.

2955
bansi

Penggunaan umum mysqldump adalah untuk membuat cadangan seluruh basis data:

Shell> mysqldump db_name > backup-file.sql

Anda dapat memuat file dump kembali ke server seperti ini:

UNIX

Shell> mysql db_name < backup-file.sql

Perintah yang sama pada Windows Prompt:

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

PowerShell

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

Baris perintah MySQL

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

Mengenai waktu yang diperlukan untuk mengimpor file besar: yang paling penting, ini membutuhkan lebih banyak waktu karena pengaturan default MySQL adalah autocommit = true. Anda harus mematikannya sebelum mengimpor file Anda dan kemudian memeriksa cara impor bekerja seperti permata.

Anda hanya perlu melakukan hal berikut:

mysql> use db_name;

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

Di antara semua jawaban, untuk masalah di atas, ini adalah yang terbaik:

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

Kita dapat menggunakan perintah ini untuk mengimpor SQL dari baris perintah:

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

Misalnya, jika nama pengguna root dan kata sandi password. Dan Anda memiliki nama database sebagai bank dan file SQL adalah bank.sql. Kemudian, lakukan seperti ini:

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

Ingat di mana file SQL Anda. Jika file SQL Anda ada di folder/direktori Desktop maka buka direktori desktop dan masukkan perintah seperti ini:

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

Dan jika Anda berada di direktori Project dan file SQL Anda ada di direktori Desktop. Jika Anda ingin mengaksesnya dari direktori Project maka Anda dapat melakukannya seperti ini:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
60
Amrit Dhungana
  1. Buka baris perintah MySQL
  2. Ketikkan path direktori mysql Anda dan tekan Enter
  3. Rekatkan file SQL Anda di dalam folder bin dari server mysql.
  4. Buat database di MySQL.
  5. Gunakan database tertentu di mana Anda ingin mengimpor file SQL.
  6. Ketik source databasefilename.sql dan Enter
  7. Unggah file SQL Anda.
57
user4412947

Jika Anda sudah memiliki database, gunakan yang berikut ini untuk mengimpor file dump atau sql

mysql -u username -p database_name < file.sql

jika Anda tidak, Anda perlu membuat database yang relevan (kosong) di MySQL, untuk yang pertama masuk ke konsol MySQL dengan menjalankan perintah berikut di terminal atau di cmd

mysql -u userName -p;

dan saat diminta, berikan kata sandi.

Selanjutnya buat database dan gunakan itu

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

Kemudian impor file sql atau dump ke database dari

mysql> source pathToYourSQLFile;

Catatan: jika terminal Anda tidak ada di lokasi di mana file dump atau sql ada, gunakan jalur relatif di atas.

44

Solusi yang bekerja untuk saya adalah di bawah ini:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
40
Shiks

Pergi ke direktori di mana Anda memiliki MySQL yang dapat dieksekusi. -u untuk nama pengguna dan -p ke Prompt untuk kata sandi:

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

Untuk mengimpor satu basis data, gunakan perintah berikut.

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

Untuk mengimpor beberapa dump database, gunakan perintah berikut.

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

Saya pikir patut disebutkan bahwa Anda juga dapat memuat file gzipped (terkompresi) dengan zcat seperti yang ditunjukkan di bawah ini:

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

Untuk membuang database ke file SQL gunakan perintah berikut

mysqldump -u username -p database_name > database_name.sql

Untuk mengimpor file SQL ke dalam basis data (pastikan Anda berada di direktori yang sama dengan file SQL atau berikan path lengkap ke file tersebut)

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

Cara termudah untuk mengimpor ke skema Anda:

Login ke mysql dan berikan perintah menyebutkan di bawah ini. 

mysql> use your_db_name;

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

Untuk mengimpor beberapa file SQL sekaligus, gunakan ini:

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

Untuk mengimpor sederhana:

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

Untuk WAMP :

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

Untuk XAMPP:

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

Anda tidak perlu menentukan nama database pada baris perintah jika file .sql berisi pernyataan CREATE DATABASE IF NOT EXISTS db_name dan USE db_name.

Pastikan Anda terhubung dengan pengguna yang memiliki izin untuk membuat database, jika database yang disebutkan dalam file .sql tidak ada.

12
Reuben

Impor basis data

  1. Pergi ke drive:

    command: d:
    
  2. Login MySQL

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. Ia akan meminta pwd. Masukkan:

    pwd
    
  4. Pilih basis data

    use DbName;
    
  5. Berikan nama file

    \.DbName.sql
    
11
Pritam Chaudhari

Tambahkan opsi --force :

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

Pergi ke direktori tempat Anda memiliki MySQL.

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

Juga untuk membuang semua database, gunakan opsi -all-databases, dan tidak ada nama database yang perlu ditentukan lagi.

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

Atau Anda dapat menggunakan beberapa klien GUI seperti SQLyog untuk melakukan ini.

8
Sathish D

Perintah berikut ini berfungsi untuk saya dari baris perintah (cmd) pada Windows 7 pada WAMP .

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

Saya pikir ini bisa bermanfaat bagi mereka yang menggunakan Mac OS X :

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

Ganti xampp dengan mamp atau server web lainnya.

7
Giri

Sementara sebagian besar jawaban di sini hanya menyebutkan perintah sederhana

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

hari ini cukup umum bahwa database dan tabel memiliki collasi utf8 di mana perintah ini tidak cukup . Memiliki coll8 utf8 di tabel yang diekspor diperlukan untuk menggunakan perintah ini:

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

Surley ini juga berfungsi untuk rangkaian karakter lain, cara menunjukkan notasi yang tepat dapat dilihat di sini:

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

Satu komentar juga menyebutkan bahwa jika sebuah database tidak pernah ada, sebuah database kosong harus dibuat terlebih dahulu. Ini mungkin benar dalam beberapa kasus, tetapi tergantung pada file ekspor. Jika file yang diekspor termasuk sudah perintah untuk membuat database maka database tidak harus dibuat dalam langkah terpisah, yang bahkan dapat menyebabkan kesalahan pada impor. Jadi pada impor, disarankan untuk melihat terlebih dahulu dalam file untuk mengetahui perintah mana yang termasuk di sana, pada ekspor disarankan untuk mencatat pengaturan, terutama jika file tersebut sangat besar dan sulit dibaca di editor.

Masih ada lebih banyak parameter untuk perintah yang terdaftar dan dijelaskan di sini:

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

Jika Anda menggunakan versi database lain, pertimbangkan untuk mencari versi manual yang sesuai juga. Tautan yang disebutkan merujuk ke MySQL versi 5.7.

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

Gunakan bantuan mysql untuk detail mysql --help

Saya pikir ini akan menjadi opsi yang berguna dalam konteks kita

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

apa yang menyenangkan, jika kita mengimpor basis data besar dan tidak memiliki bilah kemajuan. Gunakan Pipe Viewer dan lihat transfer data melalui pipa

Untuk Mac, brew install pv. Untuk Debian/Ubuntu, apt-get install pv. Lainnya, lihat 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

Terkadang port didefinisikan serta server alamat IP dari database itu juga penting ...

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

Saya terus mengalami masalah di mana database tidak dibuat.

Saya memperbaikinya seperti ini

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

Untuk tujuan pencadangan, buat file BAT dan jalankan file BAT ini menggunakan Penjadwal Tugas . Ini akan mengambil cadangan dari basis data; cukup salin baris berikut dan tempel di Notepad dan kemudian simpan file .bat, dan jalankan di sistem Anda.

@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

Demikian pula untuk https://stackoverflow.com/a/17666285/1888983
Perbedaan utama bagi saya:

  1. Basis data harus ada terlebih dahulu
  2. Tidak ada ruang antara -p dan kata sandi

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

Menjalankan Fedora 26 dengan MariaDB.

4
jozxyqk

Untuk informasi saya baru saja default root + tanpa kata sandi, itu tidak berfungsi dengan semua jawaban di atas. 

  • Saya membuat pengguna baru dengan semua hak istimewa dan kata sandi. Berhasil. 

  • kata sandi TANPA RUANG. 

4
Paul Leclerc

Saya menggunakan Windows 10 dengan Powershell 5 dan saya menemukan hampir semua solusi "unix-like" tidak berfungsi untuk saya.

> 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

Saya akhirnya menggunakan perintah ini.

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

dan itu bekerja dengan sempurna, semoga membantu.

Terima kasih kepada @ Francesco Casula 's answer btw.

4
Fery Wardiyanto

Langkah-langkah berikut membantu mengunggah file.sql ke database MySQL.

Langkah 1: Unggah file.sql.Zip ke direktori mana saja dan unzip di sana 
Catatan : Sudo apt-get install unzip: Sudo apt-get unzip file.sql.Zip
Langkah 2: Sekarang navigasikan ke direktori itu. Contoh: cd /var/www/html

Langkah 3: mysql -u username -p database-name < file.sql
Masukkan kata sandi dan tunggu hingga unggahan selesai.

4
Ramesh Sinha

Memberikan kredensial pada baris perintah bukanlah ide yang baik. Jawaban di atas bagus, tetapi lalai menyebutkannya

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

Di mana etc/myhost.cnf adalah file yang berisi Host, pengguna, kata sandi, dan Anda menghindari mengekspos kata sandi pada baris perintah. Berikut ini contohnya,

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

Impor ke dalam basis data: -

mysql -u username -p database_name </ file path/file_name.sql

Ekspor dari database: -

mysqldump -u username -p database_name>/path file/file_name.sql

setelah perintah ini, Prompt akan meminta kata sandi mysql Anda

3
NeeruSingh

Jika mengimpor data ke wadah buruh pelabuhan gunakan perintah berikut. Sesuaikan pengguna (-u), basis data (-D), port (-P) dan Host (-h) agar sesuai dengan konfigurasi Anda.

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

Jika Anda menggunakan MAMP di Mac OS X, ini mungkin bermanfaat:

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

MYSQL_USER adalah root secara default.

1
HowardDuck

Ekspor basis data tertentu:

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

Ini akan mengekspor basis data CCR dan KIT ...

Impor semua database yang diekspor ke instance MySQL tertentu (Anda harus berada di tempat file dump Anda):

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

Untuk mengimpor basis data melalui terminal

Arahkan ke folder tempat file sql berada

jalankan perintah di bawah ini

mysql -u database_user_name -p database_name < sql_file_name.sql

Itu akan meminta kata sandi. masukkan kata sandi basis data. Diperlukan beberapa detik untuk mengimpor data dalam basis data.

1
Dev Semicolon

Sebagai contoh

Saya menginstal perangkat lunak pada C:\xampp\mysql\bin Dan file saya ada di alamat C:\Users\file.sql

Cukup tetapkan username dan database_name

Catatan: Pertama, Anda perlu membuat database (database_name) secara manual

Jalankan perintah ini:

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

Dan kemudian masukkan kata sandi ???? 

1

Jika folder Anda memiliki beberapa file SQL, dan Anda telah menginstal Git Bash Anda dapat menggunakan perintah ini untuk mengimpor banyak file:

cd /my-project/data

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

Dari windows Anda dapat menggunakan perintah di bawah ini untuk mengimpor data dari sql dump

C:\Program Files\MySQL\MySQL Server 5.7\bin> mysql -u <> -p <> DBName <filelocation\query.sql

di mana -u diikuti oleh nama pengguna dan -p diikuti oleh kata sandi Mysql. Kata sandi dapat dilewati dalam perintah karena dapat dimasukkan pada Prompt.

1
Ripudaman Singh

Anda dapat mencoba kueri ini.

Ekspor: Mysqldump -u username –-password = your_password database_name> file.sql

Impor: Mysql -u nama pengguna –-password = your_password database_name <file.sql

dan detail mengikuti tautan ini:

https://chartio.com/resources/tutorials/importing-from-and-exporting-to-files-using-the-mysql-command-line/

1

Jika Anda mengimpor ke server database lokal Anda, Anda dapat melakukan hal berikut:

mysql -u database_user -p < database_file.sql

Untuk server basis data jauh, lakukan langkah berikut:

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

Kamu bisa memakai:

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

contoh:

mysql -uroot -proot db < db.sql

sampai jumpa!