MySQL dökümünü komut satırından indirme


306

Linode'dan uzaklaşıyorum çünkü gerekli Linux sysadmin becerilerine sahip değilim; Daha noob dostu bir hizmete geçişi tamamlamadan önce, bir MySQL veritabanının içeriğini indirmem gerekiyor. Bunu komut satırından yapabilmemin bir yolu var mı?



mysqldump aradığınız şey.
Faruk Şahin

1
@AZinkey Bu yazı kopyasının kabul edilen cevabını bulacağınızı ve cevabımın içeriğini (kelime için) aylar sonra cevaplarının ilk kısmına
yapıştıracağınızı düşünüyorum

Yanıtlar:


656

Bunu mysqldump komut satırı işlevini kullanarak gerçekleştirebilirsiniz .

Örneğin:

Tüm DB ise, o zaman:

   $ mysqldump -u [uname] -p db_name > db_backup.sql

Hepsi DB ise, o zaman:

   $ mysqldump -u [uname] -p --all-databases > all_db_backup.sql

Bir DB içindeki belirli tablolarsa:

   $ mysqldump -u [uname] -p db_name table1 table2 > table_backup.sql

Hatta gzip kullanarak çıkışı otomatik olarak sıkıştırmak kadar ileri gidebilirsiniz (DB'niz çok büyükse):

   $ mysqldump -u [uname] -p db_name | gzip > db_backup.sql.gz

Bunu uzaktan yapmak istiyorsanız ve söz konusu sunucuya erişiminiz varsa, aşağıdakiler işe yarar (MySQL sunucusunun 3306 numaralı bağlantı noktasında olduğu varsayılarak):

   $ mysqldump -P 3306 -h [ip_address] -u [uname] -p db_name > db_backup.sql

.sqlDosyayı komut satırını çalıştırdığınız klasöre bırakmalıdır .

EDIT: Parolaların CLI komutlarına eklenmesini önlemek için güncellendi, -pseçeneği parola olmadan kullanın . Sizi ister ve kaydetmez.


1
Cevabınız stackoverflow.com/questions/2989724/… ile birlikte - Sorduğu şeyi yapmalı, çünkü indirmesi gerekiyor. Oluşturulduktan sonra adı geçen dosyayı almak için bu veya bir wgetveya scpgerekli olacaktır.
Zak

47
Şifreyi doğrudan komutta girmemenin daha güvenli olduğunu unutmayın. Yalnızca -p seçeneği parola olmadan kullanıldığında, çalışma sırasında parola istenir, bu şekilde parola komut geçmişinizde depolanmaz (ve muhtemelen alınabilir). Yani aşağıdaki komutu kullanarak: mysqldump -P 3306 -h [ip_adresi] -u [uname] -p db_name> db_backup.sql
Pitt

3
Bunun yerine kullanmanın >kurtarmak için, ben daha çok kullanmak -rbelirtildiği gibi, yabancı karakterler ile sorun veya sorunları kodlayan ilgili o kabus önlemek amacıyla bu makalede .
Pathros

1
Büyük / aktif olarak güncellenen veri grupları için --single-transaction parametresini kullanın. Bu bir kontrol noktası oluşturur ve tutarlılığın sağlanmasına yardımcı olur. Ayrıca, prosedürleri / işlevleri / tetikleyicileri sakladıysanız --routines --triggers anahtarlarını kullanın
accord_guy

1
Bunun --result-file=db_backup.sqlyerine kullanmalısınız > db_backup.sql. MySQL belgelerinden alıntı : "UTF-16'ya bağlantı karakter kümesi olarak izin verilmez (bkz. İzinsiz İstemci Karakter Kümeleri ), bu nedenle döküm dosyası doğru yüklenmez. Bu soruna geçici bir çözüm bulmak için --result-file, ASCII biçimi ".
Martin Braun

13

MySQL'in en son sürümlerinde, en azından benimkinde, doğrudan komuta geçemezsiniz.

Koşmak zorundasın:

mysqldump -u [uname] -p db_name > db_backup.sql

ve sonra şifreyi soracaktır.


2
-pseçenek ve gerçek şifre arasındaki boşluğu kaldırmak hile yapar
y2k-shubham

8

Uzak sunucudan indiriyorsanız, basit bir örnek:

mysqldump -h my.address.amazonaws.com -u my_username -p db_name > /home/username/db_backup_name.sql

-P bir parola gireceğinizi gösterir, db_name ile ilgili değildir. Komutu girdikten sonra sizden şifre istenir. Yazıp enter tuşuna basın.


5

Windows'ta, mysqldump.exe'nin bulunduğu mysql binini belirtmeniz gerekir.

cd C:\xampp\mysql\bin

mysqldump -u[username] -p[password] --all-databases > C:\localhost.sql

bunu backup.cmd gibi bir metin dosyasına kaydedin


veya PATH değişkeninizde genellikle mysql olması sayesinde mysqlher yerde dizinde bulunmadan komutları çalıştırabilirsiniz .
behz4d

2

Komut istemini açın ve doğrudan bu komutu yazın. Mysql içine girmeyin ve sonra bu komutu yazın.

mysqldump -u [uname] -p[pass] db_name > db_backup.sql

1
İlk kod satırını kabul edilen cevaptan 5 yaşındaki bir soru üzerine kopyalamak karma çiftçiliği için cesur bir stratejidir.
Phillip Copley

Mysql istemi içinde bu MySQLdump komutunu denedim ve işe yaramadı. öylesine sadece cevapladı :-)
Nithin Raja

2

MySQL kurulum dizinine gidin ve oradan cmd'yi açın. Ardından veritabanınızın yedeğini almak için aşağıdaki komutu yürütün.

mysqldump -u root -p --add-drop-database --databases db> C:\db-dontdelete\db.sql

1

Sadece yazın mysqldumpveya mysqldump --helpcmd'niz gösterilecekhow to use

İşte cmd sonucum

C:\Program Files\MySQL\MySQL Server 5.0\bin>mysqldump
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]
For more options, use mysqldump --help

1

MySQL'i varsayılan bağlantı noktası dışında çalıştırıyorsanız:

mysqldump.exe -u username -p -P PORT_NO database > backup.sql

1

Komut satırına şifre girmek isteyenler için. Mümkün ama özel karakterin herhangi bir soruna neden olmaması için tırnak içine almanızı öneririz.

mysqldump -h'my.address.amazonaws.com' -u'my_username' -p'password' db_name > /path/backupname.sql

-1

Bunu kullanın archiedb adlı bir veritabanınız varsa, bu mysql -p --databases archiedb> /home/database_backup.sql kullanın

Bunun linux olduğunu varsayarsak, yedekleme dosyasının nereye kaydedileceğini seçin.


kabuk> mysqldump -p mypassword --databases mydb> /home/backup.sql.
Nabaasa Archie

-1

Windows kullanıcıları için komutu çalıştırmak için mysql klasörünüze gidebilirsiniz

Örneğin

cd c:\wamp64\bin\mysql\mysql5.7.26\bin
mysqldump -u root -p databasename > dbname_dump.sql

1
Soru, MySQL'in Linux'ta çalıştığını ileri sürdü.
gmauch

-1

Not: Bu adım yalnızca MySQL dosyanızı boşalttıktan sonra gelir (yukarıdaki cevapların çoğu ele alınmıştır).

Söz konusu döküm dosyasının uzak sunucunuzda bulunduğunu ve şimdi yerel bilgisayarınıza aktarmak istediğinizi varsayar.

Boşaltılan .sqldosyayı uzak sunucunuzdan yerel bilgisayarınıza indirmek için

scp -i YOUR_SSH_KEY your_username@IP:name_of_file.sql ./my_local_project_dir
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.