Bagaimana cara mengimpor file .sql di MySQL?

39

Saya mencoba mengimpor file .sql menggunakan MySQL Workbench dan saya mendapatkan kesalahan ini:

ERROR 1046 (3D000) at line 28: No database selected

Saya pertama kali membuat database kosong yang disebut dengan nama yang sama dengan file .sql tetapi tidak berfungsi. Saya juga mencoba melakukannya dengan klien perintah mysql menggunakan:

mysqldump -u root database > file.sql 

Tetapi dikatakan memiliki kesalahan dalam sintaks SQL saya. Selain itu, saya tidak tahu jalan di mana saya harus mengatur file.sql.

RolandoMySQLDBA
sumber
Saya dapat mengimpor mysqldump menggunakan mysql di bawah ini> menggunakan mydatabase; mysql> source sql_file.sql;
Giridharan Venugopal

Jawaban:

49

Ekspor:

mysqldump -u username –-password=your_password database_name > file.sql

Impor:

mysql -u username –-password=your_password database_name < file.sql 
juergen d
sumber
9
Tidak boleh ada jarak antara -pdanpassword
tombom
Bagaimana jika saya tidak memiliki kata sandi?
Kemudian lewati parameter kata sandi.
Kazimieras Aliulis
Piping ( mysqldump db -uuser -ppass|mysql new_db -uuser -ppass) menghapus kebutuhan untuk menggunakan file perantara.
Pacerier
2
Basis data harus ada di MySQL agar ini berfungsi, saya pikir.
Noumenon
28

Anda juga dapat mengimpor file .sql sebagai pengguna yang sudah terhubung ke cara database:

mysql> use your_database_name;

mysql> source file.sql;
tdaget
sumber
3
sumber D: /path/file.sql; bekerja luar biasa! ingat slash depan, bukan back slash.
Imdad
6

Cara lain untuk mengimpor file dump saat source <filename> tidak berfungsi adalah dengan melakukan hal berikut:

Membuang

~> mysqldump --user=<user> --password=<password> <db_name> > <export_file_name>.sql

Impor

> mysql -u <user> -p <pass> <db_name>
mysql> USE <db_name>;  (if you didn't already select)
mysql> \. ~/<export_file_name>.sql
Mike S.
sumber
5

Jawaban juergen d tentu saja benar; Namun, mengingat pesan kesalahan Anda, Anda juga dapat menambahkan ke file SQL Anda di baris awal seperti:

USE your_database_name;

Ini juga harus melakukan pekerjaan dan membiarkan Anda mengimpor di bawah Workbench.

Saat Anda menggunakan mysqldump, file yang diekspor akan disimpan di folder saat ini. Tidak masalah di bawah jalan apa itu. Hanya ketika mengimpor dari baris perintah Anda harus berada di folder yang sama atau menentukan path ke file. Tapi ini tidak terjadi ketika Anda menggunakan alat visual seperti Workbench, di mana Anda harus memilih file dari folder tree.

Komunitas
sumber
2

Anda kehilangan kata sandi dalam perintah. Gunakan yang berikut ini.

mysql --u [username] --password=[password] [database name] < [dump file]

sumber
1

Untuk Windows, di direktori instalasi server MySQL (misalnya C:\Program Files\MySQL\MySQL Server 5.5), di my.ini file, tambahkan baris berikut [mysqld]di bawah di bagian server:

max_allowed_packet = 16M

Dan simpan perubahannya. (Jika Anda tidak diizinkan menyimpan, maka salin dan tempel ke desktop dan edit lagi, lalu tempel di lokasi yang sama.)

Setelah itu, restart server MySQL Anda.

pengguna24439
sumber