it-swarm-tr.com

MySQL'deki komut satırını kullanarak bir SQL dosyasını nasıl alabilirim?

phpMyAdmin öğesinin dışa aktarımı olan bir .sql dosyam var. Komut satırını kullanarak farklı bir sunucuya almak istiyorum.

Bir Windows Server 2008 R2 kurulumum var. .sql dosyasını C sürücüsü üzerine yerleştirdim ve bu komutu denedim

database_name < file.sql

Çalışmıyor sözdizimi hataları alıyorum.

  • Bu dosyayı sorunsuzca nasıl alabilirim?
  • Önce bir veritabanı oluşturmam gerekir mi?
1511
Jaylen

Deneyin:

mysql -u username -p database_name < file.sql

MySQL Seçenekleri işaretini kontrol edin.

Not-1: SQL dosyasının file.sql dosyasının tam yolunu kullanmak daha iyidir.

Not-2: Orijinal veritabanının rutinlerini ve tetikleyicilerini saklamak için -R ve --triggers kullanın. Varsayılan olarak kopyalanmazlar.

Not-3 Eğer zaten yoksa ve dışa aktarılan SQL, içe aktarmadan önce CREATE DATABASE (--no-create-db veya -n seçeneği ile dışa aktarılır) içermiyorsa, mysql'den (boş) veritabanı oluşturmanız gerekebilir.

2955
bansi

Ortak bir mysqldump kullanımı, veritabanının tamamını yedeklemektir:

Shell> mysqldump db_name > backup-file.sql

Dökümü dosyasını bu şekilde sunucuya geri yükleyebilirsiniz:

UNIX

Shell> mysql db_name < backup-file.sql

Windows komutunda da aynı komut istemi:

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

Güç kalkanı

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

MySQL komut satırı

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

Büyük dosyaların içe aktarılması için harcanan zaman ile ilgili olarak: en önemlisi, daha fazla zaman alır çünkü MySQL'in varsayılan ayarı autocommit = true. Dosyanızı içe aktarmadan önce bunu ayarlamalısınız ve ardından içe aktarmanın bir mücevher gibi nasıl çalıştığını kontrol etmelisiniz.

Sadece aşağıdakileri yapmanız gerekir:

mysql> use db_name;

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

Tüm cevaplar arasında, yukarıdaki sorun için, en iyisi bu:

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

SQL'i komut satırından almak için bu komutu kullanabiliriz:

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

Örneğin, kullanıcı adı root ve parola password ise. Ve bank olarak bir veritabanı adınız var ve SQL dosyası bank.sql. Sonra, sadece böyle yapın:

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

SQL dosyanızın nerede olduğunu unutmayın. SQL dosyanız Desktop klasöründe/dizinindeyse, masaüstü dizinine gidin ve şu komutu girin:

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

Ve eğer Project dizinindeyseniz ve SQL dosyanız Desktop dizinindeyse. Project dizininden erişmek istiyorsanız, aşağıdakileri yapabilirsiniz:

~/Project ? mysql -u root -p password bank < ~/Desktop/bank.sql
60
Amrit Dhungana
  1. MySQL komut satırını açın
  2. MySQL bin dizininizin yolunu yazın ve tuşuna basın. Enter
  3. SQL dosyanızı, mysql sunucusunun bin klasörünün içine yapıştırın.
  4. MySQL'de bir veritabanı oluşturun.
  5. SQL dosyasını almak istediğiniz belirli bir veritabanını kullanın.
  6. source databasefilename.sql yazın ve Enter
  7. SQL dosyanız başarıyla yüklendi.
57
user4412947

Zaten veritabanınız varsa, dump veya sql dosyasını almak için aşağıdakileri kullanın

mysql -u username -p database_name < file.sql

i̇lgili veritabanını MySQL'de (boş) oluşturmanız gerekmiyorsa, bunun için ilk önce MySQL konsolunda terminalde veya cmd'de aşağıdaki komutu çalıştırarak oturum açın.

mysql -u userName -p;

ve istendiğinde şifreyi girin.

Sonra bir veritabanı oluşturun ve kullanın

mysql>create database yourDatabaseName;
mysql>use yourDatabaseName;

Sonra veritabanından sql veya dump dosyasını alın

mysql> source pathToYourSQLFile;

Not: terminaliniz dump veya sql dosyasının bulunduğu konumda değilse, yukarıdaki göreceli yolu kullanın.

44

Benim için çalışan bir çözüm aşağıdadır:

Use your_database_name;
SOURCE path_to_db_sql_file_on_your_local;
40
Shiks

MySQL çalıştırılabilirinin bulunduğu dizine gidin. Kullanıcı adı için -u ve Şifre için sor 'a -p:

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

Tek bir veritabanını içe aktarmak için aşağıdaki komutu kullanın.

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

Birden fazla veritabanı dökümü almak için aşağıdaki komutu kullanın.

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

Ayrıca aşağıda gösterildiği gibi zcat olan bir gzipped (compressed) dosyasını da yükleyebileceğinizi belirtmeye değer

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

Bir veritabanını bir SQL dosyasına atmak için aşağıdaki komutu kullanın

mysqldump -u username -p database_name > database_name.sql

Bir SQL dosyasını veritabanına içe aktarmak için (SQL dosyasıyla aynı dizinde olduğunuzdan emin olun veya dosyanın tam yolunu belirtin)

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

Şemanıza aktarmanın en kolay yolu:

MySQL'e giriş yapın ve aşağıda belirtilen komutları girin 

mysql> use your_db_name;

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

Aynı anda birden fazla SQL dosyasını içe aktarmak için şunu kullanın:

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

Basit ithalat için:

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

WAMP için:

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

XAMPP için:

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

.Sql dosyası CREATE DATABASE IF NOT EXISTS db_name ve USE db_name ifadeleri içeriyorsa, komut satırında veritabanının adını belirtmeniz gerekmez.

Sadece .sql dosyasında belirtilen veritabanı mevcut değilse, veritabanını oluşturma izinlerine sahip bir kullanıcıyla bağlantı kurduğunuzdan emin olun.

12
Reuben

Veritabanını içe aktar

  1. Arabaya git:

    command: d:
    
  2. MySQL girişi

    command: c:\xampp\mysql\bin\mysql -u root -p
    
  3. Pwd için isteyecek. Girin:

    pwd
    
  4. Veritabanını seç

    use DbName;
    
  5. Dosya adını girin

    \.DbName.sql
    
11
Pritam Chaudhari

--force seçeneğini ekleyin :

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

MySQL'in bulunduğu dizine gidin.

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

Ayrıca tüm veritabanlarını atmak için, -all-databases seçeneğini kullanın ve artık veritabanlarının adının belirtilmesi gerekmez.

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

Veya bunu yapmak için SQLyog gibi bazı GUI istemcileri kullanabilirsiniz.

8
Sathish D

Aşağıdaki komut benim için çalışıyor. Komut satırından (cmd). Windows 7'de WAMP .

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

Mac OS X kullananlar için faydalı olacağını düşündüm

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

xampp dosyasını mamp veya başka bir web sunucusu ile değiştirin.

7
Giri

Buradaki cevapların çoğu sadece basit komuttan söz ederken

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

bugün veritabanlarının ve tabloların, bu komutun yeterli olmadığı durumlarda utf8-harmanlaması olması oldukça yaygındır .. __ Dışa aktarılan tablolarda utf8-harmanlaması olması bu komutu kullanmak için gereklidir:

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

Surley bu diğer karakter setlerinde de çalışır, burada doğru gösterimin nasıl gösterilebileceğini gösterir:

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

Bir yorumda, eğer bir veritabanı hiç mevcut değilse, önce boş bir veritabanı oluşturulması gerektiğinden bahsetti. Bu, bazı durumlarda doğru olabilir, ancak verme dosyasına bağlıdır. Dışa aktarılan dosya zaten veritabanını oluşturma komutunu içeriyorsa, veritabanının hiçbir zaman ayrı bir adımda oluşturulması gerekmez; bu, içe aktarmada bir hataya neden olabilir. Bu nedenle, içe aktarma sırasında hangi komutların burada bulunduğunu bilmek için ilk önce dosyaya bir göz atmanız önerilir, dışa aktarma sırasında, özellikle dosya bir editörde okunması çok büyük ve zorsa ayarları not almanız önerilir.

Burada listelenen ve açıklanan komut için hala daha fazla parametre var:

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

Başka bir veritabanı sürümü kullanıyorsanız, kılavuzun ilgili sürümünü de aramayı düşünün. Belirtilen bağlantılar MySQL sürüm 5.7'ye aittir.

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

Detaylar için mysql yardımını kullanın mysql --help

Bunların bağlamımızda yararlı seçenekler olacağını düşünüyorum

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

ne eğlenceli, eğer büyük bir veri tabanı alıyorsak ve bir ilerleme çubuğuna sahip değilsek. Pipe Viewer'ı kullanın ve borudan veri transferini görün

Mac için, brew install pv. Debian/Ubuntu, apt-get install pv. Diğerleri için, bakınız 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

Bazen de tanımlandığı gibi port/server IP adresi / bu veritabanının önemi de ...

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

Veritabanının yaratılmadığı bir problemle karşılaşmaya devam ettim.

Böyle düzelttim

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

Yedekleme amacıyla, bir BAT dosyası oluşturun ve Task Scheduler ile bu BAT dosyasını çalıştırın. Veritabanının bir yedeğini alacaktır; sadece aşağıdaki satırı kopyalayın ve Notepad içine yapıştırın ve ardından .bat dosyasını kaydedin ve sisteminizde çalıştırın.

@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

https://stackoverflow.com/a/17666285/1888983 ile benzer şekilde
Benim için temel farklılıklar:

  1. Önce veritabanı mevcut olmalı
  2. -p ve şifre arasında boşluk yok

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

Fedora 26'yı MariaDB ile yönetiyorum.

4
jozxyqk

Bilgi almak için sadece root + withoutpassword kullandım, yukarıda verilen tüm cevaplarla çalışmadı. 

  • Tüm ayrıcalıklara ve şifreye sahip yeni bir kullanıcı oluşturdum. İşe yarıyor. 

  • UZAY OLMADAN -Password. 

4
Paul Leclerc

Powershell 5 ile Windows 10 kullanıyorum ve neredeyse tüm "unix benzeri" çözümleri benim için çalışmadığını gördü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

Bu komutu kullanarak sona erer.

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

ve mükemmel çalışıyor, umarım yardımcı olur.

@ Francesco Casula 'nın cevap btw' a teşekkürler.

4
Fery Wardiyanto

Aşağıdaki adımlar, file.sql dosyasını MySQL veritabanına yüklemenize yardımcı olur.

1. Adım: file.sql.Zip dosyasını herhangi bir dizine yükleyin ve bu klasörde açın. 
Not : Sudo apt-get install unzip: Sudo apt-get unzip file.sql.Zip
Adım 2: Şimdi bu dizine gidin. Örnek: cd /var/www/html

Adım 3: mysql -u username -p database-name < file.sql
Şifreyi girin ve yükleme tamamlanana kadar bekleyin.

4
Ramesh Sinha

Komut satırında kimlik bilgileri sağlamak iyi bir fikir değildir. Yukarıdaki cevaplar harika, ama söylemeyi ihmal etmeyin

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

Etc/myhost.cnf burada Host, kullanıcı, şifre içeren bir dosyadır ve şifreyi komut satırında göstermekten kaçınırsınız. İşte bir örnek

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

Veritabanına aktar: -

mysql -u kullanıcı adı -p veritabanı_adı </ dosya yolu/dosya_adı.sql

Veritabanından ihracat: -

mysqldump -u kullanıcı adı -p veritabanı_adı>/dosya yolu/dosya_adı.sql

bu komutlardan sonra İstemi mysql şifrenizi soracak

3
NeeruSingh

Bir liman kasasına veri aktarıyorsanız aşağıdaki komutu kullanın. Kullanıcıya (-u), veritabanı (-D), port (-P) ve Ana Bilgisayarı (-h) konfigürasyonunuza uyacak şekilde ayarlayın.

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

Mac OS X'te MAMP kullanıyorsanız, bu yardımcı olabilir:

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

MYSQL_USER varsayılan olarak root'tur.

1
HowardDuck

Belirli veritabanlarını dışa aktar:

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

Bu CCR ve KIT veritabanlarını ihraç edecek ...

Dışa aktarılan tüm veritabanlarını belirli bir MySQL örneğine alın (döküm dosyanızın olduğu yerde olmanız gerekir):

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

buntu'da

 mysql -u root -p
 CREATE database dbname;
 use dbname;
 source /home/computername/Downloads/merchantapp.sql
 exit;

Windows'ta

SQL dosyasını indirin ve C:\xampp\mysql\bin içine kaydedin.

Ondan sonra Komut istemini C:\xampp\mysql\bin ile açın:

 C:\xampp\mysql\bin> mysql -u username -p database_name < file.sql
1
Shabeer Sha

Veritabanını terminal yoluyla almak için

Sql dosyasının bulunduğu klasöre gidin

aşağıdaki komut

mysql -u database_user_name -p database_name < sql_file_name.sql

Parola soracaktır. veritabanı şifresini girin. Veriyi veritabanına almak birkaç saniye sürecektir.

1
Dev Semicolon

Örneğin

Yazılımı C:\xampp\mysql\bin Üzerine yükledim ve dosyam C:\Users\file.sql adresinde

Sadece username ve database_name öğelerini ayarlayın

Not: Önce veritabanını (database_name) manuel olarak oluşturmanız gerekir.

Bu komutu çalıştırın:

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

Ve sonra şifreyi girin ???? 

1
Mahdi Bashirpour

Klasörünüzde birden fazla SQL dosyası varsa ve Git Bash uygulamasını yüklediyseniz, bu komutu birden fazla dosya almak için kullanabilirsiniz:

cd /my-project/data

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

Pencerelerden sql dökümü'nden veri almak için aşağıdaki komutu kullanabilirsiniz

C:\Program Dosyaları\MySQL\MySQL Sunucusu 5.7\bin> mysql -u <> -p <> DBName <filelocation\query.sql

nerede -u takip eden kullanıcı adı ve -p ardından Mysql şifresi. Parola İstemde girilebileceği gibi komutta atlanabilir.

1
Ripudaman Singh

Bu sorguyu deneyebilirsiniz.

Dışa Aktar: Mysqldump -u kullanıcı adı –-password = your_password veritabanı_adı> dosya.sql

İçe Aktar: Mysql -u kullaniciadi –-password = your_password veritabanı_adı <file.sql

ve bu bağlantıyı takip eden detay:

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

1

1) Wamp ya da xampp dizininize gidin. Örnek

cd d: /wamp/bin/mysql/mysql5.7.24/bin

2) mysql -u kökü -p DATABASENAME <PATHYOUDATABASE_FILE

0
Naveen dev

Yerel veritabanı sunucunuza aktarıyorsanız, aşağıdakileri yapabilirsiniz:

mysql -u database_user -p < database_file.sql

Uzak veritabanı sunucusu için aşağıdakileri yapın:

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

Bunu dene:-

C:\xampp\mysql\bin>mysql -u root -p database_name --force < C:\file.sql
0
Amarat

Kullanabilirsiniz:

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

örnek:

mysql -uroot -proot db < db.sql

hoşçakal!