Tüm barındırma hizmetlerinde 15% tasarruf edin

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

Kodu kullanın: Skills Başlayın
Bölüm
Linux Sanal Sunucular Yönetim

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 temelini oluşturur. 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 ihtiyacınız olan her yöntemi, komutu ve sorun giderme adımını size gösterir — komut satırından phpMyAdmin’e kadar.

MySQL İçe Aktarma 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 kurtarması — verilerinizi yanlışlıkla silinme veya sunucu arızasından koruyun
  • Sunucu geçişi — 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 sunan bir VPS Hosting 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

İhracat veya ithalatla ilgili işlemlere başlamadan önce, aşağıdakilerin hazır olduğunu doğrulayın:

  • MySQL sunucusu erişimi yeterli kullanıcı ayrıcalıklarıyla (SELECT, LOCK TABLES, SHOW VIEW, TRIGGER ihracat için; CREATE, INSERT, ALTER ithacat için)
  • 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 dump dosyası için, özellikle büyük veritabanları için

> Pro ipucu: Projeler arasında birden fazla veritabanını yönetiyorsanız, akıcı, GUI tabanlı veritabanı yönetimi deneyimi için cPanel ile VPS kullanmayı 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 geniş bir seçenek yelpazesini 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 (örneğin, 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 ve 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 kurulumunuza gidin (örneğin, https://yourdomain.com/phpmyadmin).

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

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

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

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

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

  • Hızlı — Veritabanının tamamını varsayılan ayarlarla dışa aktarır. Çoğu kullanım durumu için uygun.
  • Ö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, geçiş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 dosyasını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

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

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

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

Adım 3: İçe Aktarma sekmesine gidin

Üst gezinti menüsünde İçe Aktarma sekmesini tıklayın.

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

Dosya Seç‘i 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ı
  • Format: Otomatik olarak SQL olarak ayarlanmalıdır

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

phpMyAdmin içe aktarma işlemini başlatacaktı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. İleri Dışa Aktarma ve İçe Aktarma Teknikleri

MySQL Yedeklemelerini Cron İşleriyle 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 güncel bir yedeklemeniz olmasını sağlar.

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

Bir veritabanını ara dosya oluşturmadan 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, dump çıktısını SSH üzerinden uzak MySQL örneğine doğrudan aktarır — yüksek bant genişliğine sahip bir VPS Hosting ortamında verimli ve hızlıdır.

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

Birkaç gigabaytı aşan veritabanları için şu 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 Aktarma/Dışa Aktarma Hatalarının Giderilmesi

Hata 1049: Bilinmeyen Veritabanı

ERROR 1049 (42000): Unknown database 'database_name'

Neden: Hedef veritabanı mevcut değil.

Çö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ış.

Çö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ğil.

Çö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 boyutu kısıtlaması olmayan komut satırı içe aktarma yöntemine geçin.

İçe Aktarma Yarıda Durur (Zaman Aşımı)

Neden: Büyük içe aktarmalar PHP veya MySQL zaman aşımı sınırlarını aşıyor.

Çözüm: Büyük dosyalar için komut satırını kullanın veya MySQL’in zaman aşımını artırın:

SET GLOBAL wait_timeout = 28800;
SET GLOBAL interactive_timeout = 28800;

6. MySQL Dışa Aktarmaları ve İçe Aktarmaları için Güvenlik En İyi Uygulamaları

Veritabanı dumplarınızı korumak, onları oluşturmak kadar önemlidir. Bu en iyi uygulamaları izleyin:

  • Hassas dumpları şifreleyin — Dışa aktarılan dosyaları depolamadan veya aktarmadan önce şifrelemek için GPG kullanın:
  gpg --symmetric --cipher-algo AES256 export_file.sql
  • Dosya izinlerini kısıtlayın — Dump dosyalarının herkese açık olmamasını sağlayın:
  chmod 600 export_file.sql
  • Özel MySQL kullanıcıları kullanın — Rutin dışa aktarmalar için root kullanmaktan kaçının. Minimum gerekli ayrıcalıklara sahip bir yedekleme kullanıcısı oluşturun.
  • Yedeklemeleri sunucu dışında depolayın — Dumpları uzak bir konuma veya nesne depolamaya yükleyin ve sunucu düzeyindeki hatalardan koruyun.
  • Bağlantınızı güvenli hale getirin — Uzak MySQL bağlantıları için her zaman SSL/TLS kullanın. Bunu, aktarım sırasında verileri korumak için geçerli bir SSL Sertifikası ile eşleştirin.

7. MySQL İşlemleri için Doğru Hosting Ortamını Seçme

MySQL içe aktarma ve dışa aktarma işlemlerinizin performansı, hosting altyapınıza büyük ölçüde bağlıdır. Farklı ortamların nasıl karşılaştırıldığını aşağıda görebilirsiniz:

Hosting TürüEn İyi Kullanım AlanıMySQL Performansı
Paylaşımlı Web HostingKüçük siteler, düşük trafikSınırlı; paylaşılan kaynaklar
VPS HostingÇoğu web uygulaması, geliştiricilerMükemmel; ayrılmış kaynaklar
Dedicated SunucularYüksek trafik, kurumsal veritabanlarıMaksimum; tam donanım kontrolü

Çoğu geliştirici ve büyüyen işletme için, VPS performans, kontrol ve maliyet açısından ideal bir denge sağlar. NVMe SSD depolama, tam root erişimi ve ayrılmış RAM ile, uygulama performansını etkilemeden büyük mysqldump işlemleri çalıştırabilirsiniz.

Uygulamanız ayrıca e-posta altyapısına da dayanıyorsa, VPS’inizi E-posta Hosting ile eşleştirmek, işlemsel ve bildirim e-postalarınızın veritabanı işlemlerinizin yanında güvenilir kalmasını sağlar.

Sonuç: MySQL Veritabanı Yönetiminde Güvenle Ustalaşın

MySQL veritabanlarını içe aktarma ve dışa aktarma, yedeklemeleri, geçişleri, olağanüstü durum kurtarmasını ve geliştirme iş akışlarını destekleyen temel bir beceridir. Komut satırının hassasiyetini veya phpMyAdmin’in erişilebilirliğini tercih etseniz de, bu kılavuzda ele alınan yöntemler veritabanlarınızı güvenli ve verimli bir şekilde yönetmek için ihtiyacınız olan her şeyi sağlar.

Temel çıkarımlar:

  • Güvenilir, komut dosyası oluşturulabilir dışa aktarmalar ve seçenekler üzerinde tam kontrol için mysqldump kullanın
  • İçe aktarmadan önce hedef veritabanının var olduğunu her zaman doğrulayın
  • Üretim ortamları için cron işleriyle yedeklemeleri otomatikleştirin
  • Büyük dosyalar için phpMyAdmin boyut sınırlarını aşmak amacıyla komut satırı içe aktarmalarını kullanın
  • Hassas veritabanı dumplarını korumak için güvenlik en iyi uygulamalarını uygulayın
  • Doğru barındırma ortamını seçin — yüksek performanslı bir VPS, büyük ölçekli veritabanı işlemleri için ölçülebilir bir fark yaratır

MySQL veritabanlarınızın tam kontrolünü almaya hazır mısınız? AlexHost’tan VPS Hosting‘i keşfedin — NVMe depolama, root erişimi ve uygulamalarınızın hak ettiği performans ile.