15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın
01.11.2024

MySQL Veritabanlarını İçe Aktarma ve Dışa Aktarma: Kapsamlı Bir Kılavuz

Verimli veritabanı yönetimi, güvenilir herhangi bir web uygulamasının omurgasıdır. Rutin yedeklemeler yapıyor, sunucular arasında veri taşıyor veya yeni bir ortam kuruyor olsanız da, MySQL veritabanlarını içe ve dışa aktarmayı bilmek her geliştirici ve sistem yöneticisi için gerekli bir beceridir.

Bu kapsamlı rehber, MySQL veritabanlarını güvenle yönetmek için ihtiyaç duyduğunuz her yöntemi, komutu ve sorun giderme adımında size yol gösterir — komut satırından phpMyAdmin’e kadar.

MySQL İçe ve Dışa Aktarma İşlemleri Neden Önemlidir

MySQL veritabanı dışa aktarmaları ve içe aktarmaları birkaç kritik amaca hizmet eder:

  • Yedekleme ve olağanüstü durum kurtarma — verilerinizi yanlışlıkla silme veya sunucu arızasına karşı koruyun
  • Sunucu göçü — veritabanlarını barındırma ortamları arasında veri kaybı olmadan taşıyın
  • Geliştirme ve hazırlama — test amaçları için üretim veritabanlarını klonlayın
  • Sürüm kontrolü — büyük uygulama güncellemeleri öncesinde veritabanı durumunun anlık görüntüsünü alın

Bu işlemlerin sorunsuz çalışması için barındırma altyapınız önemlidir. NVMe depolama, tam kök erişimi ve yüksek I/O verimlilik ile bir VPS Barındırma ortamı, büyük veritabanı dökümlerinin hızlı ve güvenilir bir şekilde tamamlanmasını sağlar.

1. Ön Koşullar: Başlamadan Önce İhtiyacınız Olanlar

Dışa aktarma veya içe aktarmaya geçmeden önce aşağıdakilerin yerinde olduğunu doğrulayın:

  • MySQL sunucusu erişimi yeterli kullanıcı ayrıcalıklarıyla (dışa aktarmalar için SELECT, LOCK TABLES, SHOW VIEW, TRIGGER; içe aktarmalar için CREATE, INSERT, ALTER)
  • MySQL istemcisi yüklü yerel makinenizde veya sunucuda
  • Terminal veya SSH istemcisi komut satırı işlemleri için
  • phpMyAdmin (isteğe bağlı) grafik arayüzü tercih ederseniz
  • Yeterli disk alanı .sql döküm dosyası için, özellikle büyük veritabanları için

> Pro ipucu: Projeler arasında birden fazla veritabanı yönetiyorsanız, akıcı bir GUI tabanlı veritabanı yönetimi deneyimi için cPanel’li VPS düşünün.

2. MySQL Veritabanını Dışa Aktarma

MySQL veritabanını dışa aktarmak, tam veritabanı şemasını (yapısını) ve verileri içeren bir .sql dosyası oluşturur. Bu dosya daha sonra veritabanınızı geri yüklemek veya taşımak için kullanılabilir.

Yöntem 1: MySQL Komut Satırını Kullanma (mysqldump)

mysqldump yardımcı programı, MySQL veritabanlarını dışa aktarmak için en güvenilir ve yaygın olarak kullanılan araçtır. Terminal’den doğrudan çalışır ve çok çeşitli seçenekleri destekler.

Adım 1: Terminal’inizi açın

SSH aracılığıyla sunucunuza bağlanın veya yerel bir terminal oturumu açın.

Adım 2: mysqldump komutunu çalıştırın

mysqldump -u username -p database_name > export_file.sql

Yer tutucuları aşağıdaki gibi değiştirin:

Yer TutucuAçıklama
usernameMySQL kullanıcı adınız (örn. root veya özel bir DB kullanıcısı)
database_nameDışa aktarmak istediğiniz veritabanının adı
export_file.sqlÇıktı dosyasının istenen adı ve yolu

Adım 3: MySQL şifrenizi girin

Şifrenizi girmeniz istenecektir. Kimlik doğrulamadan hemen sonra dışa aktarma işlemi başlayacaktır.

Örnek:

mysqldump -u root -p my_wordpress_db > /home/backups/wordpress_backup_2024.sql

Yararlı mysqldump bayrakları:

# Export all databases
mysqldump -u root -p --all-databases > all_databases.sql

# Export only the database structure (no data)
mysqldump -u root -p --no-data database_name > structure_only.sql

# Compress the output on the fly
mysqldump -u root -p database_name | gzip > export_file.sql.gz

# Export specific tables only
mysqldump -u root -p database_name table1 table2 > partial_export.sql

Yöntem 2: phpMyAdmin Aracılığıyla Dışa Aktarma

phpMyAdmin, veritabanı dışa aktarmaları için kullanıcı dostu bir grafik arayüz sağlar; komut satırını kullanmamayı tercih edenler için idealdir.

Adım 1: phpMyAdmin’e giriş yapın

Tarayıcınızı açın ve phpMyAdmin yüklemenize gidin (örn. https://yourdomain.com/phpmyadmin).

Adım 2: Veritabanınızı seçin

Sol kenar çubuğunda, dışa aktarmak istediğiniz veritabanına tıklayın.

Adım 3: Dışa Aktarma sekmesine gidin

Üst navigasyon menüsünde Dışa Aktarma sekmesine tıklayın.

Adım 4: Dışa aktarma yönteminizi seçin

  • Hızlı — Tüm veritabanını varsayılan ayarlarla dışa aktarır. Çoğu kullanım durumu için uygundur.
  • Özel — Belirli tabloları, çıktı biçimini, sıkıştırmayı ve ek seçenekleri seçmenize olanak tanır.

Adım 5: SQL biçimini seçin

Biçimin SQL olarak ayarlandığından emin olun (varsayılan). İhtiyaçlarınıza bağlı olarak CSV, XML veya diğer biçimleri de seçebilirsiniz.

Adım 6: Git’e tıklayın

phpMyAdmin, .sql dosyasını oluşturacak ve yerel makinenize indirecektir.

3. MySQL Veritabanını İçe Aktarma

.sql dosyasını içe aktarmak, daha önce dışa aktarılan bir veritabanını MySQL sunucusuna geri yükler. Bu, göçler, geri yüklemeler ve dağıtımlar için standart yöntemdir.

Yöntem 1: MySQL Komut Satırını Kullanma

Adım 1: Hedef veritabanının var olduğundan emin olun

İçe aktarmadan önce, hedef veritabanı zaten var olmalıdır. Yoksa, oluşturun:

mysql -u root -p -e "CREATE DATABASE new_database_name;"

Adım 2: İçe aktarma komutunu çalıştırın

mysql -u username -p database_name < import_file.sql

Yer tutucuları değiştirin:

Yer TutucuAçıklama
usernameMySQL kullanıcı adınız
database_nameİçe aktarılacak hedef veritabanı
import_file.sql.sql dosyanızın yolu

Örnek:

mysql -u root -p my_wordpress_db < /home/backups/wordpress_backup_2024.sql

Sıkıştırılmış dosya içe aktarma:

gunzip < export_file.sql.gz | mysql -u root -p database_name

Adım 3: İçe aktarmayı doğrulayın

Komut tamamlandıktan sonra, MySQL’e giriş yapın ve verileri doğrulayın:

mysql -u root -p
USE database_name;
SHOW TABLES;

Yöntem 2: phpMyAdmin Aracılığıyla İçe Aktarma

Adım 1: phpMyAdmin’e giriş yapın

phpMyAdmin’i tarayıcınızda açın.

Adım 2: Hedef veritabanını seçin veya oluşturun

  • Veritabanı zaten varsa, sol kenar çubuğunda ona tıklayın.
  • Yoksa, üst menüde Veritabanları‘na tıklayın, yeni bir veritabanı adı girin ve Oluştur‘a tıklayın.

Adım 3: İçe Aktarma sekmesine gidin

Üst navigasyon menüsünde İçe Aktarma sekmesine tıklayın.

Adım 4: Dosyanızı seçin

Dosya Seç‘e tıklayın ve yerel makinenizden .sql dosyasını seçin.

Adım 5: İçe aktarma ayarlarını yapılandırın

  • Karakter seti: Veritabanı kodlamanızla eşleştiğinden emin olun (genellikle utf8mb4)
  • Kısmi içe aktarma: Kesintiye uğrayan içe aktarmaları sürdürmek için yararlıdır
  • Biçim: Otomatik olarak SQL olarak ayarlanmalıdır

Adım 6: Git’e tıklayın

phpMyAdmin içe aktarma işlemine başlayacaktır. Sekmeyi kapatmadan önce yeşil başarı onay mesajını bekleyin.

> Not: phpMyAdmin’in varsayılan dosya yükleme boyutu sınırı vardır (genellikle 2MB–128MB). Daha büyük veritabanları için komut satırı yöntemini kullanın veya aşağıdaki sorun giderme bölümünde açıklandığı gibi PHP ayarlarını ayarlayın.

4. Gelişmiş Dışa Aktarma ve İçe Aktarma Teknikleri

Cron İşleri ile MySQL Yedeklemelerini Otomatikleştirme

Üretim ortamları için manuel dışa aktarmalar yeterli değildir. Cron işini kullanarak veritabanı yedeklemelerinizi otomatikleştirin:

# Open the crontab editor
crontab -e

# Add this line to run a daily backup at 2:00 AM
0 2 * * * mysqldump -u root -pYourPassword database_name | gzip > /backups/db_$(date +%F).sql.gz

Bu, manuel müdahale olmadan her zaman son bir yedeklemeye sahip olmanızı sağlar.

Veritabanlarını Sunucular Arasında Taşıma

Ara bir dosya oluşturmadan bir veritabanını doğrudan bir sunucudan diğerine taşımak için:

mysqldump -u root -p database_name | ssh user@remote_server "mysql -u root -p remote_database"

Bu, döküm çıktısını doğrudan SSH üzerinden uzak MySQL örneğine aktarır — yüksek bant genişliğine sahip bir VPS Barındırma ortamında verimli ve hızlıdır.

Büyük Veritabanlarını İşleme

Birkaç gigabaytı aşan veritabanları için bu optimizasyonları göz önünde bulundurun:

# Use single-transaction for InnoDB tables (avoids table locks)
mysqldump --single-transaction -u root -p database_name > export.sql

# Disable foreign key checks during import for speed
mysql -u root -p database_name -e "SET foreign_key_checks = 0;"
mysql -u root -p database_name < import_file.sql
mysql -u root -p database_name -e "SET foreign_key_checks = 1;"

5. Yaygın MySQL İçe/Dışa Aktarma Hatalarını Giderme

Hata 1049: Bilinmeyen Veritabanı

ERROR 1049 (42000): Unknown database 'database_name'

Neden: Hedef veritabanı mevcut değildir.

Çözüm: İçe aktarmadan önce veritabanını oluşturun:

mysql -u root -p -e "CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

Hata 2002: MySQL Sunucusuna Bağlanılamıyor

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Neden: MySQL hizmeti çalışmıyor veya soket yolu yanlıştır.

Çözüm: MySQL hizmetini kontrol edin ve yeniden başlatın:

# Check MySQL status
sudo systemctl status mysql

# Start MySQL if it's stopped
sudo systemctl start mysql

# For MariaDB
sudo systemctl start mariadb

Hata 1044: Erişim Reddedildi

ERROR 1044 (42000): Access denied for user 'username'@'localhost' to database 'database_name'

Neden: MySQL kullanıcısı yeterli ayrıcalıklara sahip değildir.

Çözüm: Gerekli izinleri verin:

mysql -u root -p
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
FLUSH PRIVILEGES;

phpMyAdmin Dosya Boyutu Sınırı Aşıldı

Neden: .sql dosyası phpMyAdmin’in yükleme sınırını aşıyor.

Çözüm: PHP yapılandırma dosyanızı (php.ini) düzenleyin:

upload_max_filesize = 256M
post_max_size = 256M
max_execution_time = 600
memory_limit = 512M

Kaydettikten sonra web sunucunuzu yeniden başlatın:

sudo systemctl restart apache2
# or
sudo systemctl restart nginx

Alternatif olarak, dosya boy

15%

Tüm Hosting Hizmetlerinde %15 indirim

Becerilerini test et ve herhangi bir hosting planında İndirim kazan

Kodu kullanın:

Skills
Başlayın