MySQL'de bir .sql dosyası nasıl alınır?


39

MySQL Workbench kullanarak bir .sql dosyasını almaya çalışıyorum ve bu hatayı alıyorum:

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

Önce .sql dosyasıyla aynı adı taşıyan boş bir veritabanı oluşturdum, ancak çalışmıyor. Ben de kullanarak mysql komut istemcisi ile yapmaya çalıştım:

mysqldump -u root database > file.sql 

Ama benim SQL sözdiziminde bir hata olduğunu söylüyor. Ayrıca, file.sql dosyasını ayarlamam gereken yolu bilmiyorum.


Aşağıdaki mysql> use mydatabase kullanarak mysqldump içeri aktarmayı başardım; mysql> kaynak sql_file.sql;
Giridharan Venugopal

Yanıtlar:


49

İhracat:

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

İthalat:

mysql -u username –-password=your_password database_name < file.sql 

9
Olmalı hiçbir arasındaki boşluk -pvepassword
tombom

Ya bir şifrem yoksa?

Ardından şifre parametresini atlayın.
Kazimieras Aliulis

Piping ( mysqldump db -uuser -ppass|mysql new_db -uuser -ppass), bir ara dosya kullanma ihtiyacını ortadan kaldırır.
Pacerier

2
Bunun çalışması için veritabanının MySQL'de bulunması gerekiyor.
Noumenon

28

Ayrıca bir .sql dosyasını zaten bağlı bir kullanıcı olarak veritabanına aktarabilirsiniz:

mysql> use your_database_name;

mysql> source file.sql;

3
kaynak D: /path/file.sql; mükemmel çalışıyor! ters eğik çizgi yerine ön eğik çizgiyi hatırlayın.
Imdad

6

Çalışılmadığında döküm dosyalarını içe aktarmanın başka bir yolu source <filename>aşağıdakileri yapmaktır:

çöplük

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

İthalat

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

5

juergen d'nin cevabı elbette doğrudur; bununla birlikte, hata mesajınızı göz önünde bulundurarak, SQL dosyanızı aşağıdaki gibi bir satırda ekleyebilirsiniz:

USE your_database_name;

Bu aynı zamanda işi yapmalı ve Tezgah altında içeri aktarmanıza izin vermelidir.

Kullanırken mysqldump, verilen dosya geçerli klasöre kaydedilir. Hangi yolda olduğu önemli değil. Sadece komut satırından içeri aktarırken aynı klasörde olmanız veya dosyanın yolunu belirtmeniz gerekir. Ancak, bu dosyayı yine de klasör ağacından seçmeniz gereken Workbench gibi görsel bir araç kullanırken bu geçerli değildir.


2

Komutta şifreyi kaçırıyorsunuz. Aşağıdakileri kullanın.

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

1

Windows için, MySQL sunucusu kurulum dizininde (örneğin C:\Program Files\MySQL\MySQL Server 5.5), sunucunun my.ini filealtındaki aşağıdaki satırı ekleyin [mysqld]:

max_allowed_packet = 16M

Ve değişiklikleri sakla. (Kaydetme izniniz yoksa, masaüstüne kopyalayıp yapıştırın ve yeniden düzenleyin, ardından aynı yere yapıştırın.)

Bundan sonra, MySQL sunucunuzu yeniden başlatın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.