ServBay: Mevcut MariaDB Veritabanı Verilerini Yerel Ortama Aktarma
ServBay, yerleşik MariaDB veritabanı paketine sahip güçlü bir yerel Web geliştirme ortamıdır. Mevcut MariaDB veritabanınızı (örneğin, farklı bir yerel ortamdan, uzak bir sunucudan veya yedekleme dosyasından) ServBay ile gelen MariaDB'ye taşımak veya aktarmak yaygın bir işlemdir. Bu makale, verinizi güvenli bir şekilde ServBay yerel geliştirme ortamınıza taşımanız için adım adım sizi yönlendirecek ve işlemin sorunsuz tamamlanmasını sağlayacaktır.
Genel Bakış
Bu rehberde, standart MariaDB/MySQL komut satırı araçlarını (mysqldump
ve mysql
) kullanarak verilerin kaynak MariaDB örneğinden nasıl dışa aktarılacağı, ardından ServBay ortamında hedef veritabanının nasıl hazırlanacağı ve son olarak verilerin ServBay'in MariaDB örneğine nasıl içe aktarılacağı anlatılacaktır.
Ön Koşullar
Veri aktarımına başlamadan önce aşağıdaki şartların sağlandığından emin olun:
- ServBay macOS üzerinde kurulu ve çalışır durumda olmalı: ServBay uygulamanızın başarıyla yüklendiğinden ve çalıştığından emin olun.
- ServBay içindeki MariaDB paketi etkinleştirildi ve çalışıyor olmalı: ServBay arayüzünde “Paketler” listesinde MariaDB paketinin etkin ve çalışır durumda (yeşil) olduğunu görebilmelisiniz. Çalışmıyorsa başlatın.
- Kaynak MariaDB veritabanına erişiminiz olmalı: Kaynak MariaDB'nin sunucu adresini, portunu (varsayılan değilse), kullanıcı adını, şifresini ve dışa aktarılacak veritabanı adını bilmeniz gerekir.
- ServBay'deki hedef MariaDB veritabanına erişiminiz olmalı: Genellikle ServBay MariaDB'nin
root
kullanıcısı ve şifresi gereklidir. ServBay'in MariaDB'sinde varsayılan kullanıcı genellikleroot
'tur ve ilk kurulumda parola olmayabilir ya da siz kurulum/konfigürasyonda belirlemiş olabilirsiniz. Gerekli bilgileri ServBay arayüzünün veritabanı yönetim bölümünden bulabilir ya da şifreyi sıfırlayabilirsiniz. - Yeterli disk alanınız olmalı: Hedef ServBay ortamının aktarılacak veriler için yeterli depolama alanına sahip olduğundan emin olun.
Adım Adım Yönergeler
Adım 1: Kaynak MariaDB'den Veri Dışa Aktarma
İlk olarak, mysqldump
aracıyla kaynak MariaDB veritabanınızı bir SQL dosyası olarak dışa aktarın.
Terminal uygulamasını açın: macOS sisteminizde “Terminal” uygulamasını başlatın.
Dışa aktarma komutunu çalıştırın:
mysqldump
komutunu kullanarak kaynak MariaDB’ye bağlanın ve veritabanını dışa aktarın. Kaynak veritabanı adınınmydatabase_source
, dışa aktarılacak dosyanın adının isemydatabase.sql
olduğunu varsayarsak:bashmysqldump -u your_source_username -p -h your_source_host -P your_source_port mydatabase_source > mydatabase.sql
1your_source_username
: Kaynak MariaDB'nin kullanıcı adıyla değiştirin.-p
: Komut çalıştırıldıktan sonra parola istenir.-h your_source_host
: Kaynak veritabanı yerel değilse sunucu adresini belirtin. Kaynak yerelde ve varsayılan ayarlardaysa bu parametreyi atlayabilirsiniz.-P your_source_port
: Varsayılan 3306 dışında port kullanıyorsanız port numarasını belirtin. Çoğunlukla bu parametreyi atlayabilirsiniz.mydatabase_source
: Dışa aktarılacak kaynak veritabanı adıyla değiştirin.> mydatabase.sql
: Dışa aktarılan veriler bulunduğunuz dizindemydatabase.sql
isimli dosyaya yazılır.
Sonrasında bu SQL dosyasına ServBay ortamından erişiminiz olması için, dosyayı ServBay’in web sitesi kök dizinindeki bir geçici klasöre taşımanız önerilir, örneğin
/Applications/ServBay/www/temp/mydatabase.sql
. Önce bulunduğunuz dizine dışa aktarın, sonramv
komutuyla taşıyın:bashmysqldump -u your_source_username -p mydatabase_source > mydatabase.sql mv mydatabase.sql /Applications/ServBay/www/temp/
1
2Not:
/Applications/ServBay/www/temp/
dizininin mevcut olduğundan emin olun.
Adım 2: Hedef MariaDB Veritabanının Hazırlanması (ServBay’de)
Verileri içe aktarmadan önce, ServBay’in yerleşik MariaDB’sinde ilgili veritabanını oluşturmalısınız.
ServBay’in MariaDB veritabanına bağlanın: Terminali açıp,
mysql
komutuyla ServBay’in MariaDB örneğine bağlanın. ServBay genellikle Unix soketi veya localhost üzerinden bağlantıya izin verir.bashmysql -u root -p
1Komutu girdikten sonra, ServBay MariaDB
root
kullanıcısının parolası istenir. Parolayı girip Enter tuşuna basarak MariaDB komut satırı istemine giriş yapın.İpucu: Şifreden emin değilseniz veya bağlantı sorunları yaşıyorsanız, ServBay arayüzünde MariaDB paketinin ayarlarını veya loglarını kontrol edin.
Hedef veritabanını oluşturun: MariaDB komut satırı isteminde, aktarılacak veriler için yeni bir veritabanı oluşturun. Kaynak veritabanıyla aynı adı kullanmanız önerilir (ör:
mydatabase
), ama zorunlu değildir.sqlCREATE DATABASE mydatabase CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
1mydatabase
: ServBay’de oluşturmak istediğiniz veritabanı adı ile değiştirin.CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
: Karakter seti ve sıralama kuralını açıkça belirtmeniz, karakter bozulmasını engellemek için önemle tavsiye edilir.utf8mb4
, çok dilli karakterler için önerilen settir. Kaynak veritabanınızın ayarına uygun şekilde ayarlamalar yapın.
MariaDB istemcisinden çıkın: Veritabanını oluşturduktan sonra aşağıdaki komutla çıkış yapın.
sqlexit;
1
Adım 3: Verileri ServBay'in MariaDB'sine İçe Aktarma
Artık dışa aktarılan SQL dosyasını, ServBay’in MariaDB'sinde oluşturduğunuz veritabanına içe aktarabilirsiniz.
Terminal uygulamasını açın: Terminal penceresinde olun.
İçe aktarma komutunu çalıştırın: SQL dosyasını hedef veritabanına aktarmak için
mysql
komutunu kullanın.bashmysql -u root -p mydatabase < /Applications/ServBay/www/temp/mydatabase.sql
1-u root -p
: ServBay MariaDBroot
kullanıcısı ile bağlanır ve parola ister.mydatabase
: Adım 2’de oluşturduğunuz hedef veritabanı adıyla değiştirin.< /Applications/ServBay/www/temp/mydatabase.sql
: İçe aktarılacak SQL dosyasının tam yolu. Dosyanın gerçekten bu konumda olduğundan emin olun.
Dosya büyüklüğüne göre içe aktarma süresi değişebilir. İşlem sırasında terminalde herhangi bir çıktı görünmeyebilir; tamamlandığında ya da bir hata oluşursa bilgi göreceksiniz.
Adım 4: Veri İçe Aktarımını Doğrulama
İçe aktarma sonrası, verilerin düzgün şekilde ServBay’in MariaDB veritabanına geçtiğinden emin olun.
ServBay’in MariaDB veritabanına yeniden bağlanın:
bashmysql -u root -p
1İçe veri aktarılan veritabanını seçin:
sqlUSE mydatabase;
1mydatabase
: Verileri aktardığınız veritabanının gerçek adıyla değiştirin.
Verileri sorgulayın: Veritabanı yapısını, tabloları ve verilerin gelip gelmediğini kontrol etmek için aşağıdaki gibi sorgular yazabilirsiniz.
sqlSHOW TABLES; -- Tüm tabloları göster SELECT COUNT(*) FROM your_table_name; -- Belirli bir tablodaki kayıt sayısını göster SELECT * FROM your_table_name LIMIT 10; -- Belirli bir tablodan ilk 10 kaydı getir
1
2
3your_table_name
: Kendi veritabanınızdaki gerçek tablo adınızla değiştirin.
Kaynak veritabanındaki veri miktarı ile karşılaştırarak veya anahtar verileri gözden geçirerek aktarımın başarılı olup olmadığını test edin.
Olası Uyumluluk Sorunlarını Çözme
MariaDB'nin farklı sürümleri genellikle iyi derecede uyumlu olsa da, veri taşıma sırasında çeşitli sorunlarla karşılaşılabilir. İşte bazı sık karşılaşılan problemler ve çözüm önerileri:
1. Belirli SQL Sözdizimi Uyumsuzluğu
Kaynak MariaDB eski sürümse ya da sürüme özgü özel sözdizimleri kullanılıyorsa, dışa aktarılan SQL dosyası yeni ServBay MariaDB’de hatalara neden olabilir.
- Çözüm: Dışa aktarılan
mydatabase.sql
dosyasını manuel olarak düzenleyip hatalı SQL satırlarını düzeltin. Hata mesajlarını ve MariaDB Belgeleri’ni referans alarak gerekli ayarlamaları yapın.
2. Depolama Motoru Uyumsuzluğu veya Kaldırılması
Bazı eski depolama motorları (örneğin MyISAM) yeni MariaDB sürümlerinde varsayılan veya önerilen olmayabilir ve yapılandırmada farklılıklar olabilir.
Çözüm: İçe aktarmadan önce SQL dosyanızdaki tüm
ENGINE=MyISAM
gibi eski motor tanımlarını, ServBay MariaDB’nin önerdiği ve desteklenen motorlara (örn.ENGINE=InnoDB
) dönüştürün. InnoDB genellikle en iyi tercihtir.sql-- SQL dosyasında şu satırı bulun: CREATE TABLE `your_table_name` ( -- ... sütun tanımları ... ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- Şu hale getirin: CREATE TABLE `your_table_name` ( -- ... sütun tanımları ... ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
1
2
3
4
5
6
7
8
9
3. Kullanıcı ve Yetki Kaybı
mysqldump
ile varsayılan olarak kullanıcı hesapları ve yetkiler dışa aktarılmaz. İçe aktarma sonrası, kaynak veritabanındaki kullanıcılar ServBay MariaDB’de otomatik olarak oluşturulmaz.
Çözüm: İçe aktarma sonrası, ihtiyaç duyulan kullanıcıları ve yetkileri ServBay MariaDB'de manuel olarak oluşturun. ServBay MariaDB'ye
root
kullanıcısı ile bağlanarak aşağıdaki komutları uygulayın.sql-- Yerel bağlantılı yeni kullanıcı oluşturun (örn. 'servbay_user', şifre 'your_password') CREATE USER 'servbay_user'@'localhost' IDENTIFIED BY 'your_password'; -- Kullanıcıya belirli veritabanında tüm yetkileri verin GRANT ALL PRIVILEGES ON mydatabase.* TO 'servbay_user'@'localhost'; -- Uzaktan bağlantı gerekmiyorsa bu satırları kullanmayın (canlı ortamda önerilmez) -- CREATE USER 'servbay_user'@'%' IDENTIFIED BY 'your_password'; -- GRANT ALL PRIVILEGES ON mydatabase.* TO 'servbay_user'@'%'; -- Yetkileri tazele FLUSH PRIVILEGES;
1
2
3
4
5
6
7
8
9
10
11
12servbay_user
veyour_password
kısımlarını kendi kullanıcı adınız ve şifrenizle değiştirin.mydatabase
kısmını ilgili veritabanı adıyla değiştirin.- Gereksinime göre
@'localhost'
veya@'%'
seçimini ayarlayın.
4. Karakter Seti ve Sıralama Uyumsuzluğu
Kaynak ve hedef veritabanlarında karakter seti veya sıralama farklılıkları varsa, özellikle ASCII dışı karakterlerde bozulmalar görülebilir.
- Çözüm: 2. adımda veritabanını oluştururken, kaynakla uyumlu (veya daha geniş uyumlu, örn.
utf8mb4
) karakter seti ve sıralama belirtin. Sorun çıkarsa, veritabanını silip SQL dosyasını uygun karakter setine göre düzenleyin ve başına örneğinSET NAMES 'utf8mb4';
gibi bir talimat ekleyin, ardından yine oluşturup içe aktarın.
ServBay’e Özel Dikkat Edilmesi Gerekenler
- MariaDB Kimlik Bilgileri: ServBay’in MariaDB’sinin
root
parolasını arayüzden inceleyebilir veya sıfırlayabilirsiniz. - Log dosyaları: Aktarım sırasında hata alırsanız, ayrıntılı bilgi için ServBay MariaDB'nin hata loglarını inceleyin (genellikle ServBay kurulum dizinindeki
logs
klasöründe bulunur). - Performans: Büyük veritabanlarının aktarımı biraz zaman alabilir ve ServBay MariaDB işlemi sırasında sistem kaynaklarını yoğun kullanabilir.
Sıkça Sorulan Sorular (SSS)
S: Aktarım sırasında işlem yarım kalırsa ne yapmalıyım?
C: Eğer aktarım kesilirse, hedef veritabanı bütünlüğünü kaybetmiş olabilir. Öncelikle hedef veritabanını silin (DROP DATABASE mydatabase;
), sonra tekrar oluşturun (CREATE DATABASE mydatabase;
), ardından içe aktarma işlemini baştan başlatın.
S: Dışa alınan SQL dosyası çok büyük, daha iyi bir içe aktarma yöntemi var mı?
C: Çok büyük SQL dosyalarında <
yönlendirmesi fazla bellek tüketebilir ya da yavaş olabilir. Bunun yerine MariaDB istemcisine girdikten sonra source
komutunu kullanabilirsiniz:
- ServBay MariaDB’ye bağlanın:
mysql -u root -p
- Veritabanını seçin:
USE mydatabase;
- Komutu çalıştırın:
SOURCE /path/to/your/large_database.sql;
Bu yöntem genellikle daha kararlıdır, ancak önce MariaDB istemcisine giriş yapmalısınız.
S: ServBay arayüzünden veri aktarımı yapılabilir mi?
C: ServBay arayüzü; paket yönetimi, site ayarları ve log görüntüleme gibi işlevler sunar. Veritabanı içe/dışa aktarma için genellikle standart komut satırı araçları (mysql
/mysqldump
) veya phpMyAdmin/Adminer gibi grafiksel araçlara ihtiyaç vardır. ServBay, yerleşik Adminer ile gelir ve arayüzden Adminer’a erişip küçük veritabanları için içe aktarma işlemi gerçekleştirebilirsiniz. Komut satırıyla uğraşmak istemeyenler için uygundur.
Sonuç
Mevcut bir MariaDB veritabanını ServBay’in MariaDB ortamına aktarmak, standart bir veri taşıma (migrasyon) işlemidir. mysqldump
ile veri dışa aktarıp ServBay'de mysql
ile içe aktararak bu işlemi rahatça yapabilirsiniz. Mutlaka ön koşulları kontrol edin, karakter seti, depolama motoru ve kullanıcı yetkisi gibi uyumluluk sorunlarını yönetin ve aktarımın doğruluğu konusunda emin olun. ServBay, MariaDB veritabanınızı çalıştırmak için sağlam bir yerel ortam sunar ve Web geliştirme süreçlerinizi verimli şekilde destekler.