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ı?
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ı?
Yanıtlar:
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
.sql
Dosyayı 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, -p
seçeneği parola olmadan kullanın . Sizi ister ve kaydetmez.
wget
veya scp
gerekli olacaktır.
>
kurtarmak için, ben daha çok kullanmak -r
belirtildiği gibi, yabancı karakterler ile sorun veya sorunları kodlayan ilgili o kabus önlemek amacıyla bu makalede .
--result-file=db_backup.sql
yerine 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 ".
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.
-p
seçenek ve gerçek şifre arasındaki boşluğu kaldırmak hile yapar
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.
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
mysql
her yerde dizinde bulunmadan komutları çalıştırabilirsiniz .
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
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
Sadece yazın mysqldump
veya mysqldump --help
cmd'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
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
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.
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 .sql
dosyayı 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