Komut Satırını Kullanarak MySQL’de Veritabanlarını İçe ve Dışa Aktarma
Veritabanı yedeklemelerini ve geçişlerini yönetmek her MySQL veritabanı yöneticisi için önemli bir görevdir. Komut satırını kullanarak veritabanlarını kolayca yedekleme dosyalarına aktarabilir veya yeni bir ortama aktarabilirsiniz. Bu kılavuz, komut satırını kullanarak MySQL’de veritabanlarının nasıl içe ve dışa aktarılacağını kapsar.
Ön Koşullar
Başlamadan önce şunlardan emin olun:
- MySQL sunucunuzda veya yerel makinenizde yüklü ve çalışıyor.
- Bir terminale veya komut satırına erişiminiz var.
- Kullanıcı adı ve parola da dahil olmak üzere gerekli MySQL kimlik bilgilerine sahipsiniz.
Veritabanlarını mysqldump ile Dışa Aktarma
Mysqldump yardımcı programı MySQL’de veritabanlarını dışa aktarmak için kullanılan standart araçtır. Veritabanını yeniden oluşturmak için gereken SQL deyimlerini içeren bir .sql dosyası oluşturur.
1. Tek Bir Veritabanını Dışa Aktarma
Tek bir veritabanını dışa aktarmak için aşağıdaki sözdizimini kullanın:
mysqldump -u [kullanıcı adı] -p [veritabanı_adı ]> [dosya adı].sql
- -u [kullanıcı adı]: MySQL kullanıcı adı.
- -p: MySQL parolasını sorar.
- [veritabanı_adı]: Dışa aktarmak istediğiniz veritabanının adı.
- [dosya_adı].sql: Veritabanı yedeğini içerecek çıktı dosyasının adı.
Örnek:
Bu komut root kullanıcısının parolasını isteyecek ve mydatabase_backup.sql adında mydatabase’in tüm verilerini ve yapısını içeren bir dosya oluşturacaktır.
2. Birden Fazla Veritabanını Dışa Aktarma
Birden fazla veritabanını dışa aktarmak için –databases bayrağını ve ardından veritabanlarının adlarını kullanın:
mysqldump -u [kullanıcı adı] -p --databases [database1 ] [database2 ]> [dosya adı].sql
Örnek:
mysqldump -u root -p --databases db1 db2 > multiple_databases_backup.sql
Bu komut hem db1 hem de db2’yi multiple_databases_backup.sql dosyasına aktaracaktır.
3. Tüm Veritabanlarını Dışa Aktar
MySQL sunucunuzdaki tüm veritabanlarını dışa aktarmak için –all-databases bayrağını kullanın:
mysqldump -u [kullanıcı adı] -p --all-databases > all_databases_backup.sql
Örnek:
mysqldump -u root -p --all-databases > all_databases_backup.sql
Bu, tüm veritabanlarının all_databases_backup.sql dosyasına tam yedeğini oluşturur.
4. Yalnızca Tablo Yapısını Dışa Aktar (Veri Yok)
Veriler olmadan yalnızca tabloların yapısına ihtiyacınız varsa, –no-data bayrağını ekleyin:
mysqldump -u [kullanıcı adı] -p --no-data [veritabanı_adı] > structure_only.sql
Örnek:
mysqldump -u root -p --no-data mydatabase > structure_only.sql
5. Belirli Tabloları Dışa Aktarma
Bir veritabanından belirli tabloları dışa aktarmak için, veritabanı adından sonra bunları listeleyin:
mysqldump -u [kullanıcı adı] -p [veritabanı_adı ] [tablo1 ] [tablo2 ]> [dosya adı].sql
Örnek:
mysqldump -u root -p mydatabase table1 table2 > tables_backup.sql
Veritabanlarını mysql ile içe aktarma
Bir SQL dosyasından bir veritabanını içe aktarmak için mysql komutunu kullanın.
1. Tek Bir Veritabanını İçe Aktarma
Bir SQL dosyasını MySQL veritabanına aktarmak için aşağıdaki komutu kullanın:
mysql -u [kullanıcı adı] -p [veritabanı_adı ]< [dosya adı].sql
- -u [kullanıcı adı]: MySQL kullanıcı adı.
- -p: MySQL parolasını sorar.
- [veritabanı_adı]: Verilerin içe aktarılacağı veritabanının adı.
- [dosya_adı].sql: İçe aktarılacak .sql dosyasının adı.
Örnek:
mysql -u root -p mydatabase < mydatabase_backup.sql
Bu komut root kullanıcısının parolasını soracak ve mydatabase_backup.sql dosyasının içeriğini mydatabase dosyasına aktaracaktır.
2. Yeni Bir Veritabanına Aktarma
Yeni bir veritabanına aktarmak istiyorsanız, önce veritabanını oluşturmanız ve ardından .sql dosyasını içe aktarmanız gerekir.
Adım 1: Yeni bir veritabanı oluşturun.
mysql -u [kullanıcı adı] -p -e "CREATE DATABASE [new_database_name];"
Adım 2: .sql dosyasını yeni veritabanına aktarın.
mysql -u [kullanıcı adı] -p [yeni_veritabanı_adı ]< [dosya adı].sql
Örnek:
mysql -u root -p -e "CREATE DATABASE newdatabase;"
mysql -u root -p newdatabase < mydatabase_backup.sql
3. Tüm Veritabanlarını İçe Aktar
Tüm veritabanlarını –all-databases kullanarak yedeklediyseniz, bunları kullanarak geri alabilirsiniz:
mysql -u [kullanıcı adı] -p < all_databases_backup.sql
Örnek:
mysql -u root -p < all_databases_backup.sql
Bu komut all_databases_backup.sql dosyasında bulunan tüm veritabanlarını geri yükleyecektir.
Mysqldump ve mysql Kullanımı için İpuçları
- Sıkıştırma Kullanın: Disk alanından ve aktarım süresinden tasarruf etmek için yedekleme dosyasını gzip kullanarak sıkıştırabilirsiniz:
mysqldump -u root -p mydatabase | gzip > mydatabase_backup.sql.gz
Ve ithal etmek için:
gunzip < mydatabase_backup.sql.gz | mysql -u root -p mydatabase
- İçe Aktarmadan Önce Veritabanını Doğrulayın: Çakışmaları önlemek için içe aktardığınız veritabanının boş olduğundan veya uyumlu veriler içerdiğinden emin olun.
- Karakter Setini Kontrol Edin: ASCII olmayan karakterlerle çalışıyorsanız, –default-character-set seçeneğini kullanarak doğru karakter kümesiyle dışa ve içe aktardığınızdan emin olun:
mysqldump -u root -p --default-character-set=utf8 mydatabase > mydatabase_backup.sql
- Hata İşleme: İçe aktarma sırasında hatalarla karşılaşırsanız, eksik veritabanları veya tablo yapıları gibi yaygın sorunları kontrol edin ve .sql dosyanızın eksiksiz olduğundan emin olun.
Özet
MySQL veritabanlarını komut satırını kullanarak dışa ve içe aktarmak mysqldump ve mysql ile kolaydır. Bu araçlar yedeklemelerin yönetilmesinde, veritabanlarının sunucular arasında taşınmasında ve yalnızca yapıya ya da verilere özgü dışa aktarımların oluşturulmasında esneklik sağlar. Komutları ve seçeneklerini anlayarak, sorunsuz veritabanı işlemleri sağlayabilir ve aktarımlar sırasında veri bütünlüğünü koruyabilirsiniz.