Terminalden MySQL ile bir veritabanını nasıl alabilirim?


373

Terminalden mysql ile bir veritabanını nasıl alabilirim?

Tam sözdizimini bulamıyorum.

Yanıtlar:


761

Linux veya Windows konsolunda olduğunuzu varsayarsak:

Şifre sor:

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

Parolayı doğrudan girin (güvenli değil):

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

Misal:

mysql -u root -p wp_users < wp_users.sql

mysql -u root -pPassword123 wp_users < wp_users.sql

Ayrıca bakınız:

4.5.1.5. SQL Dosyalarını Metin Dosyasından Yürütme


Not : Pencerelerde iseniz cd, komutu yürütmeden önce CMD içindeki MySQL / bin dizininize (dizini değiştirmeniz) gerekecektir.


139
+1 dışında şifrenizi CLI parametresi olarak geçirmemelisiniz. Bunun yerine -p seçeneğini belirtin ve komut isteminden sonra manuel olarak girin.
St.Woland

13
Kabuk ile girmek istiyorsanız, -p ile parola arasında boşluk yoktur.
Kethryweryn

8
mysql -u kullanıcı adı -h ana bilgisayar adı -şifre veritabanıadı <terminalden uzak ana bilgisayar için dosyaadı.sql
Shaik Rilwan

8
Zaten mysql komut isteminin (mysql>) içindeyseniz, kaynak full_path_of_file yazın (not: içe aktarmadan önce USE DATABASE_NAME komutuyla veritabanını seçin).
Ankit Sharma

3
@Pekka 웃, Eğer kullanırsak source, bilgi mesajlarını ( "etkilenen satırlar" ) ve hata mesajlarını görebiliriz. Ancak çözümünüzü kullanarak, Mesajları nasıl kullanıyoruz < filename.sql?
Pacerier

141

Pencereler için tercih edilen yol:

  1. Konsolu açın ve etkileşimli MySQL modunu başlatın

  2. use <name_of_your_database>;

  3. source <path_of_your_.sql>


2
neden ihtiyacımız yok; dosya adından sonra?
Nabeel Khan

6
@NabeelKhan Çoğu SQL ifadesi ifadenin ;sonunda bir gerektirir , ancak USEve dahil olmak üzere birkaç istisna vardır SOURCE.
Simon East

1
Acaba bu dosya piping daha hızlı çalışır mı (kabul edilen cevap gibi). Şüphem evet .
Simon East

Bu, HeidiSQL ile içe aktarmaktan çok daha hızlı ... 20GB'da 3GB!
kmdsax

Meraklı. İ çıkardığımda komut başarıyla yürütüldü. Daha önce olmazdı. ;source
Nikos

33

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

-u - Kullanıcı Adı için

-p - Parola istemek için

Örneğin. mysql -u root -p mydb < /home/db_backup.sql

Ayrıca, -p'den önce gelen bir parola da sağlayabilirsiniz, ancak güvenlik nedeniyle önerilemez. Parola, komutun kendisinde maskeli görünecektir.


2
Aradığım cevap bu. "<" bu benim bıraktığım işaret.
Pravinraj Venkatachalam

Eğer mydb yoksa, mysqldump komutunu ateşlediğimizde dinamik olarak nasıl oluşturulur?
परूळेकर परूळेकर

12

Doğrudan var / www / html

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

MySQL içinden:

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

7

Terminalden:

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


6

Genellikle bu komutu, adları olan dosyalara bölündüğünde SQL verilerimi yüklemek için kullanıyorum: 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

OSX kabuğunda iyi çalışır.


5

Komut satırından yükleme

Açıklama:

  1. Önce bir veritabanı oluşturun veya mevcut bir veritabanını kullanın. Benim durumumda, mevcut bir veritabanını kullanıyorum

  2. Vererek veritabanını yükleyin <name of database> = ClassicModelsoperatörü benim durumumda ve kullanma <yolunu vermekdatabase = sakila-data.sql

  3. Şov tablolarını çalıştırarak, gördüğünüz gibi tabloların listesini alıyorum.

Not: Benim durumumda 1062 hatası aldım , çünkü aynı şeyi tekrar yüklemeye çalışıyorum.


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

misal

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

Bunu terminalden kullanın


5

Aşağıdaki komut ubuntu 16.04 üzerinde çalışıyor, diğer Linux platformlarında çalıştığından emin değilim.

SQL dosyasını dışa aktar:

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

Örnek: mysqldump -u root -p max_development> max_development.sql

SQL dosyasını içe aktar:

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

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

Not SQL dosyası aynı dizinde bulunmalıdır


5

Terminali Aç Sonra

 mysql -u root -p

 eg:- mysql -u shabeer -p

Bundan Sonra Bir Veritabanı Oluşturun

 mysql> create database "Name";

 eg:- create database INVESTOR;

Sonra "YATIRIMCI" Yeni Veritabanını Seçin

 mysql> USE INVESTOR;

Makineden sql dosyasının yolunu seçin

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

Sonra enter tuşuna basın ve hepsi yürütüldüyse bir süre bekleyin

 mysql> exit

resim açıklamasını buraya girin


4
  1. MySQL Komut Satırı İstemcisini açın ve şifrenizi yazın

  2. .Sql dosya verilerini içeri aktarmak için kullanmak istediğiniz veritabanına geçin. Bunu şunu yazarak yapın:

    USE your_database_name
  3. Şimdi yürütmek istediğiniz .sql dosyasını bulun.
    Dosya ana yerel C: sürücü dizininde bulunuyorsa ve .sql komut dosyası adı ise currentSqlTable.sql, aşağıdakini yazarsınız :

    \. C:\currentSqlTable.sql

    ve EnterSQL komut dosyasını yürütmek için düğmesine basın .


7
Şekil 1/2/3 nedir?
glglgl

4

Bir süre uğraştıktan sonra bilgileri https://tommcfarlin.com/importing-a-large-database/ adresinde buldum.

  1. Mysql'e bağlanın (hem kullanıcı adı hem de şifre için root kullanalım):

    mysql -uroot -proot
  2. Veritabanına bağlanın (diyelim ki boşDatabase deniyor (bir onay mesajı almalısınız):

    connect emptyDatabase

3 Kaynak kodunu içe aktarın, dosyanın mySource.sql olarak adlandırıldığını ve myUser adlı bir kullanıcının profili altında mySoureDb adlı bir klasörde olduğunu varsayalım:

source /Users/myUser/mySourceDB/mySource.sql

3

Mysql web sitesinden sakila-db kullanıyorsanız , Linux platformunda çok kolay, sadece aşağıda belirtilen adımları izleyin, sakila-db zip dosyasını indirdikten sonra çıkarın. Şimdi iki dosya olacak, biri sakila-schema.sql diğeri ise sakila-data.sql .


  1. Terminali aç
  2. Mysql -u root -p <sakila-schema.sql komutunu girin
  3. Mysql -u root -p <sakila-data.sql komutunu girin
  4. Şimdi mysql -u root -p komutunu girin ve şifrenizi girin, şimdi varsayılan olarak mysql sistemine girdiniz veritabanı .
  5. Sakila veritabanını kullanmak için bu komutu kullanın: sakila;
  6. Sakila-db içindeki tabloları görmek için tabloları göster komutunu kullanın

Lütfen çıkartılan dosyaların giriş dizininde bulunduğundan emin olun .


2

Ubuntu'da, MySQL monitöründen , bu sözdizimini zaten kullandınız:

mysql> use <dbname> -> USE ifadesi, MySQL'e dbnamesonraki ifadeler için varsayılan veritabanı olarak kullanmasını söyler

mysql> source <file-path>

örneğin :

mysql> use phonebook;

mysql> source /tmp/phonebook.sql;

Önemli : sql dosyasının mysql'nin like / tmp dosyasına erişebileceği bir dizinde olduğundan emin olun


1

Terminalde komutları çalıştırmadan önce, terminalinizde MySQL'in kurulu olduğundan emin olmalısınız.

Yüklemek için aşağıdaki komutu kullanabilirsiniz:

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

Burada kaçın .

Bundan sonra bir veritabanını içe aktarmak için aşağıdaki komutları kullanabilirsiniz:

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

1

MYSQL'inizdeki bir veritabanını terminalden almanın en basit yolu aşağıda belirtilen işlemle yapılır -

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

Yukarıda yaptığım şey:

  1. Kullanıcı adım ve şifremle mysql'e giriyorum (işte root& root)
  2. Parolayı girdikten sonra .sql dosyamı almak istediğim veritabanının adını veriyorum. Lütfen veritabanının MYSQL'inizde var olduğundan emin olun
  3. Veritabanı adını <ve ardından .sql dosyanızın yolu izler . Örneğin, dosyam Masaüstü'nde depolanırsa, yol/home/Desktop/db.sql

Bu kadar. Tüm bunları yaptıktan sonra enter tuşuna basın ve .sql dosyanızın ilgili veritabanına yüklenmesini bekleyin


0

-P ve parola arasında boşluk olmamalıdır

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

Her zaman kullanıyorum, mükemmel çalışıyor. Bu soruyu sorduğunuz için teşekkürler. İyi günler. Njoy :)


bu ayarları, veritabanını zaman zaman otomatik olarak sıfırlamak veya içe aktarmak için paylaşılan, özel ve bulut sunucularındaki cron işinde (zamanlama görevi) de ayarlayabiliriz.
Kamlesh
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.