Bagaimana saya bisa mengimpor database dengan MySQL dari terminal?

373

Bagaimana saya bisa mengimpor database dengan mysql dari terminal?

Saya tidak dapat menemukan sintaks yang tepat.

aneuryzm
sumber

Jawaban:

761

Dengan asumsi Anda menggunakan konsol Linux atau Windows:

Prompt untuk kata sandi:

mysql -u <username> -p <databasename> < <filename.sql>

Masukkan kata sandi secara langsung (tidak aman):

mysql -u <username> -p<PlainPassword> <databasename> < <filename.sql>

Contoh:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

Lihat juga:

4.5.1.5. Menjalankan Pernyataan SQL dari File Teks


Catatan : Jika Anda berada di windows maka Anda harus cd(mengubah direktori) ke direktori MySQL / bin Anda di dalam CMD sebelum menjalankan perintah.

Hitam
sumber
139
+1 kecuali Anda tidak boleh memasukkan kata sandi Anda sebagai parameter CLI. Cukup tentukan opsi -p dan masukkan secara manual setelah diminta.
St.Woland
13
Tidak ada ruang antara -p dan kata sandi jika Anda ingin memasukkannya dengan shell.
Kethryweryn
8
mysql -u username -h hostname -pwordword databasename <filename.sql untuk host jarak jauh dari terminal
Shaik Rilwan
8
jika Anda sudah berada di dalam prompt perintah mysql (mysql>), maka cukup ketik sumber full_path_of_file (catatan: pilih basis data dengan perintah USE DATABASE_NAME sebelum mengimpor).
Ankit Sharma
3
@ Pekka 웃, Jika kita menggunakan source, kita dapat melihat pesan informasi ( "baris yang terpengaruh" ) dan pesan kesalahan. Tetapi menggunakan solusi Anda, Bagaimana kami melihat pesan menggunakan < filename.sql?
Pacerier
141

Cara yang lebih disukai untuk windows:

  1. Buka konsol dan mulai mode MySQL interaktif

  2. use <name_of_your_database>;

  3. source <path_of_your_.sql>

Sri Harsha Kappala
sumber
2
mengapa kita tidak membutuhkan; setelah nama file?
Nabeel Khan
6
@NabeelKhan Sebagian besar pernyataan SQL memerlukan ;di akhir pernyataan, tetapi ada beberapa pengecualian, termasuk USEdan SOURCE.
Simon East
1
Saya ingin tahu apakah ini berkinerja lebih cepat daripada memipipkan file (seperti dalam jawaban yang diterima). Kecurigaan saya adalah ya .
Simon East
Ini jauh lebih cepat daripada mengimpor melalui HeidiSQL ... 3GB dalam 20 menit!
kmdsax
Ingin tahu. Ketika saya dihapus ;dengan sourceperintah berhasil dijalankan. Sebelumnya tidak.
Nikos
33

mysql -u <USERNAME> -p <DB NAME> < <dump file path>

-u - untuk Nama Pengguna

-p - untuk meminta kata sandi

Misalnya. mysql -u root -p mydb < /home/db_backup.sql

Anda juga dapat memberikan kata sandi yang didahului oleh -p tetapi untuk alasan keamanan tidak disarankan. Kata sandi akan muncul pada perintah itu sendiri agak tertutup.

Mukesh Singh Rathaur
sumber
2
Inilah jawaban yang saya cari. "<" Ini adalah tanda yang kutinggalkan.
Pravinraj Venkatachalam
Jika mydb tidak ada maka bagaimana cara membuatnya secara dinamis ketika kita menjalankan perintah mysqldump?
अक्षय परूळेकर
12

Langsung dari var / www / html

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

Dari dalam mysql:

mysql> use db_name;
mysql> source backup-file.sql
Lokesh Das
sumber
7

Dari Terminal:

mysql -uroot -p --default-character-set=utf8 database_name </database_path/database.sql
Mohammad Anini
sumber
7

dalam tipe terminal

mysql -uroot -p1234; use databasename; source /path/filename.sql
Patrick Mutwiri
sumber
Ini memungkinkan untuk melihat log impor
Thiago Macedo
6

Saya biasanya menggunakan perintah ini untuk memuat data SQL saya ketika dibagi dalam file dengan nama: 000-tableA.sql, 001-tableB.sql, 002-tableC.sql.

for anyvar in *.sql; do <path to your bin>/mysql -u<username> -p<password>  <database name> < $anyvar; done

Bekerja dengan baik pada shell OSX.

Lano
sumber
5

Cara memuat dari baris perintah

Penjelasan:

  1. Pertama buat database atau gunakan database yang sudah ada. Dalam kasus saya, saya menggunakan database yang sudah ada

  2. Memuat database dengan memberikan <name of database> = ClassicModelsdalam kasus saya dan menggunakan operator <memberi jalan kedatabase = sakila-data.sql

  3. Dengan menjalankan tabel acara, saya mendapatkan daftar tabel seperti yang Anda lihat.

Catatan: Dalam kasus saya, saya mendapatkan kesalahan 1062 , karena saya mencoba memuat hal yang sama lagi.

pengguna42826
sumber
5
mysql -u username -ppassword dbname < /path/file-name.sql

contoh

mysql -u root -proot product < /home/myPC/Downloads/tbl_product.sql

Gunakan ini dari terminal

vaibhav kulkarni
sumber
5

Perintah di bawah ini berfungsi pada ubuntu 16.04, saya tidak yakin apakah itu berfungsi atau tidak pada platform Linux lainnya.

Ekspor file SQL:

$ mysqldump -u [user_name] -p [database_name] < [database_name.sql]  

Contoh: mysqldump -u root -p max_development> max_development.sql

Impor file SQL:

$ mysqldump -u [user_name] -p [database_name] > [file_name.sql]

Example: mysqldump -u root -p max_production < max_development.sql

Catatan file SQL harus ada direktori yang sama

Deepak Chaube
sumber
5

Buka Terminal Lalu

 mysql -u root -p

 eg:- mysql -u shabeer -p

Setelah Itu Buat Database

 mysql> create database "Name";

 eg:- create database INVESTOR;

Kemudian Pilih Basis Data Baru "INVESTOR"

 mysql> USE INVESTOR;

Pilih jalur file sql dari mesin

 mysql> source /home/shabeer/Desktop/new_file.sql;

Kemudian tekan enter dan tunggu beberapa kali jika semuanya sudah dijalankan

 mysql> exit

masukkan deskripsi gambar di sini

Shabeer Sha
sumber
4
  1. Buka Klien Baris Perintah MySQL dan ketik kata sandi Anda

  2. Ubah ke database yang ingin Anda gunakan untuk mengimpor data file .sql ke. Lakukan ini dengan mengetik:

    USE your_database_name
  3. Sekarang cari file .sql yang ingin Anda jalankan.
    Jika file tersebut berada di direktori drive C: lokal utama dan nama file skrip .sql adalah currentSqlTable.sql, Anda harus mengetikkan yang berikut:

    \. C:\currentSqlTable.sql

    dan tekan Enteruntuk menjalankan file skrip SQL.

student001
sumber
7
Apa Gambar 1/2/3?
glglgl
4

Setelah berjuang untuk beberapa waktu saya menemukan informasi di https://tommcfarlin.com/importing-a-large-database/

  1. Terhubung ke Mysql (mari gunakan root untuk nama pengguna dan kata sandi):

    mysql -uroot -proot
  2. Hubungkan ke database (katakanlah itu disebut emptyDatabase (Anda harus mendapatkan pesan konfirmasi):

    connect emptyDatabase

3 Impor kode sumber, misalkan file tersebut disebut mySource.sql dan ada di folder bernama mySoureDb di bawah profil pengguna yang disebut myUser:

source /Users/myUser/mySourceDB/mySource.sql
LumasDesign
sumber
3

Jika Anda menggunakan sakila-db dari situs web mysql, sangat mudah di platform Linux cukup ikuti langkah-langkah yang disebutkan di bawah ini, Setelah mengunduh file zip sakila-db , ekstrak. Sekarang Anda akan memiliki dua file, satu adalah sakila-schema.sql dan yang lainnya adalah sakila-data.sql .


  1. Terminal terbuka
  2. Masukkan perintah mysql -u root -p <sakila-schema.sql
  3. Masukkan perintah mysql -u root -p <sakila-data.sql
  4. Sekarang masukkan perintah mysql -u root -p dan masukkan kata sandi Anda, sekarang Anda telah masuk ke sistem mysql dengan database default .
  5. Untuk menggunakan database sakila, gunakan perintah ini menggunakan sakila;
  6. Untuk melihat tabel di sakila-db, gunakan perintah show tables

Harap perhatikan bahwa file yang diekstrak ada di direktori home .

alpha9eek
sumber
2

Di Ubuntu, dari monitor MySQL , Anda sudah menggunakan sintaks ini:

mysql> use <dbname> -> Pernyataan USE memberitahu MySQL untuk digunakan dbnamesebagai database default untuk pernyataan selanjutnya

mysql> source <file-path>

misalnya :

mysql> use phonebook;

mysql> source /tmp/phonebook.sql;

Penting : pastikan file sql berada di direktori yang dapat diakses mysql ke like / tmp

Viet Hoang
sumber
1

Sebelum menjalankan perintah di terminal, Anda harus memastikan bahwa Anda telah menginstal MySQL di terminal Anda.

Anda dapat menggunakan perintah berikut untuk menginstalnya:

sudo apt-get update
sudo apt-get install mysql-server

Segarkan di sini .

Setelah itu Anda dapat menggunakan perintah berikut untuk mengimpor database:

mysql -u <username> -p <databasename> < <filename.sql>
Wolfack
sumber
1

Cara termudah untuk mengimpor database di MYSQL Anda dari terminal dilakukan oleh proses yang disebutkan di bawah ini -

mysql -u root -p root database_name < path to your .sql file

Apa yang saya lakukan di atas adalah:

  1. Masuk ke mysql dengan nama pengguna dan kata sandi saya (ini dia root& root)
  2. Setelah memasukkan kata sandi, saya memberikan nama database tempat saya ingin mengimpor file .sql saya. Pastikan database sudah ada di MYSQL Anda
  3. Nama database diikuti oleh <dan kemudian path ke file .sql Anda. Misalnya, jika file saya disimpan di Desktop, jalurnya akan/home/Desktop/db.sql

Itu dia. Setelah Anda melakukan semua ini, tekan enter dan tunggu file .sql Anda untuk diunggah ke database masing-masing

Ankit Saxena
sumber
0

Tidak boleh ada spasi antara -p dan kata sandi

mysql -u [dbusername] -p[dbpassword] [databasename] < /home/serverusername/public_html/restore_db/database_file.sql

Saya selalu menggunakannya, ia bekerja dengan sempurna. Terima kasih untuk menanyakan pertanyaan ini. Semoga hari mu menyenangkan. Njoy :)

Kamlesh
sumber
kami juga dapat mengatur pengaturan ini dalam pekerjaan cron (tugas jadwal) pada server bersama, khusus dan cloud untuk mengatur ulang atau mengimpor basis data dari waktu ke waktu secara otomatis.
Kamlesh