ServBay MariaDB/MySQL Paket Hata Ayıklama Rehberi
Genel Bakış
MariaDB ve MySQL, endüstrinin önde gelen açık kaynaklı ilişkisel veritabanı yönetim sistemleridir ve birçok web uygulaması ile iş senaryosunda yaygın olarak kullanılır. ServBay, macOS ve Windows ortamlarına birden fazla MariaDB/MySQL paketini entegre ederek geliştiricilere pratik ve verimli bir yerel veritabanı ortamı sunar. Bu sistemler yüksek stabilite ile bilinse de, geliştirme ve çalışma sırasında paketlerin başlatılamaması, bağlantı hatası veya performans düşüşü gibi sorunlarla karşılaşılabilir.
Bu rehber, ServBay kullanıcılarının MariaDB/MySQL paketlerindeki yaygın hataları teşhis edip çözmelerine yardımcı olmak amacıyla hazırlanmıştır. Yaygın sorunlar, teşhis adımları ve özel çözümler ele alınacaktır; ServBay’in kendine özgü yolları ve komutları özellikle vurgulanacaktır.
Önemli Notlar:
- Veritabanı veya konfigürasyon üzerinde değişiklik yapmadan önce mutlaka veritabanınızı yedekleyin! ServBay dahili bir yedekleme aracı sunar; düzenli olarak kullanmanız hararetle tavsiye edilir.
- Dokümandaki komut ve yol örnekleri belirli sürüm numaraları ile verilmiştir (örn:
11.3
veya11.5
). Kendi ServBay ortamınızdaki MariaDB/MySQL sürümüne uygun şekilde bu numaraları değiştiriniz. Kurulu ve etkin paket sürümlerini ServBay arayüzünden kontrol edebilirsiniz. - Yol ve komutlarda
<username>
,<database>
,<your_backup.sql>
gibi yer tutucular kullanılmıştır, bunları kendi kullanıcı adınız, veritabanı isminiz veya dosya adınız ile değiştirin. - Rehber hem macOS hem de Windows işletim sistemlerini kapsar ve ilgili bölümlerde platforma özel yol ve komut örnekleri sunulacaktır.
Genel Teşhis Adımları
Sorunu detaylıca araştırmadan önce aşağıdaki temel kontrolleri yapmanız tavsiye edilir:
ServBay paketinin durumu: ServBay arayüzünden, işlemi yapmak istediğiniz MariaDB/MySQL sürümünün etkinleştiğine ve “Çalışıyor” durumunda olduğuna emin olun. Komut satırıyla da kontrol edebilirsiniz:
bashservbayctl status mariadb <version> # Örnek: MariaDB 11.3’ün durumunu kontrol etme servbayctl status mariadb 11.3
1
2
3ServBay uygulama kayıtlarını inceleyin: ServBay, paketleri başlatmaya veya yönetmeye çalışırken hata kaydı tutabilir. ServBay arayüzündeki log alanından veya ana log dosyasından kayıtları inceleyin.
MariaDB/MySQL hata kaydı: Paket başlatma, çalışma zamanı hataları gibi durumları teşhis etmek için en kritik adımdır. Log dosyalarının yolları genellikle şunlardır:
macOS:
bash/Applications/ServBay/logs/mariadb/<version>/<version>.err # Örnek: MariaDB 11.3 hata kaydının son 50 satırını görüntüleme tail -n 50 /Applications/ServBay/logs/mariadb/11.3/11.3.err
1
2
3Windows:
cmdC:\ServBay\logs\mariadb\<version>\<version>.err # Örnek: MariaDB 11.3 hata kaydının son 50 satırını görüntüleme powershell "Get-Content -Path 'C:\ServBay\logs\mariadb\11.3\11.3.err' -Tail 50"
1
2
3Özellikle logların sonunda yer alan hata mesajlarını dikkatlice inceleyin; çoğu zaman sorun doğrudan burada belirtilir.
Yaygın Sorunlar ve Çözümleri
1. Bağlantı Hatası: SQLSTATE[HY000] [2002] No such file or directory
Genellikle istemcinin Unix socket dosyası üzerinden MariaDB/MySQL sunucusuna bağlanamamasından kaynaklanır. macOS’ta Unix socket, yerel işletim içi iletişim için kullanılır ve TCP/IP’ye göre daha az kaynak harcar. Uygulama veya komut satırı aracı, socket dosyası bulunamazsa bu tip hata ortaya çıkar.
Olası Nedenler ve Çözümler:
- MariaDB/MySQL paketi çalışmıyor:
- ServBay arayüzünden veya
servbayctl status mariadb <version>
komutuyla paketin çalıştığından emin olun. - Çalışmıyorsa, başlatmak için:
servbayctl start mariadb <version>
komutunu ve başlatma hatası için.err
logunu inceleyin.
- ServBay arayüzünden veya
- Socket dosya yolu uyumsuz (sadece macOS/Linux):
- İstemcinin kullandığı socket dosya yolu, sunucu konfigürasyonundaki (
my.cnf
) yol ile örtüşmüyor olabilir. - macOS:
/Applications/ServBay/etc/mariadb/<version>/my.cnf
dosyasındasocket
parametresini kontrol edin. - Windows: Windows socket kullanmaz, esas olarak adlandırılmış boru veya TCP/IP bağlantısı kullanılır.
- macOS: Uygulamanızda veya istemcide doğru socket yolunun kullanıldığından emin olun; ServBay varsayılan olarak
/Applications/ServBay/tmp/
veya/tmp/
altında dosyaları tutar. Örn:/Applications/ServBay/tmp/mysql.sock
veya/tmp/mysql.sock
.
- İstemcinin kullandığı socket dosya yolu, sunucu konfigürasyonundaki (
- ServBay varsayılan ayar sorunu:
- ServBay “Ayarlar” > “Varsayılan SQL Sunucu”dan aktif MariaDB/MySQL sürümünü seçtiğinizden emin olun. Bazı istemci araçları, parametre vermezseniz üzerinde işlem yapılacak socket’i varsayılana göre seçebilir.
- Dosya izinleri problemi:
- macOS: MariaDB/MySQL’in çalıştığı kullanıcı, socket dizinine yazma veya dosyayı okuma hakkına sahip olmalıdır. ServBay otomatik izin ayarlasa da dizin izinlerini elle değiştirdiyseniz sorun oluşabilir.
- Windows: ServBay’in çalıştığı kullanıcı, ilgili port ve adlandırılmış boru üzerinde dizin ve dosya oluşturma hakkına sahip olmalıdır.
Alternatif Yol (Zorunlu ağ bağlantısı):
- Bağlantı için
localhost
yerine127.0.0.1
IP adresini deneyin. Bu, istemciyi Unix socket yerine TCP/IP kullanmaya zorlar. Eğer bu yolla bağlantı başarılı ise, sorun büyük olasılıkla socket dosyası ile ilgilidir.bashmysql -u <username> -p -h 127.0.0.1 -P 3306
1
2. Ağ Bağlantısı ile İlgili Hatalar (Connection refused
, Can't connect to MySQL server
gibi)
Bu tip hatalar istemcinin TCP/IP ağı üzerinden MariaDB/MySQL sunucusuna bağlanamamasından kaynaklanır.
Olası Nedenler ve Çözümler:
MariaDB/MySQL paketi çalışmıyor: (Aynı, paket durumu ve
.err
logunu kontrol edin)Port meşgul:
- MariaDB/MySQL’in dinlemeye çalıştığı portun (standartta 3306) başka bir program tarafından kullanıldığına emin olun.
macOS:
bashlsof -i :3306 # veya netstat -anv | grep LISTEN | grep 3306
1
2
3Windows:
cmdnetstat -an | findstr :3306 # veya PowerShell ile Get-NetTCPConnection -LocalPort 3306
1
2
3Port meşgulse, ilgili süreci durdurun veya MariaDB/MySQL’in
port
ayarını değiştirin, ardından yeniden başlatın.- macOS:
/Applications/ServBay/etc/mariadb/<version>/my.cnf
- Windows:
C:\ServBay\etc\mariadb\<version>\my.cnf
Güvenlik duvarı engeli:
macOS:
- macOS > Ağ > Güvenlik Duvarı ayarlarını kontrol edin.
mysqld
işleminin duvarı geçmesine izin vermek için:bash# Yolları ihtiyaca göre ayarlayın sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/ServBay/bin/mariadb/<version>/bin/mysqld sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/ServBay/bin/mariadb/<version>/bin/mysqld
1
2
3
Windows:
- Windows Defender veya diğer duvar ayarlarını inceleyin.
- Uygulama veya port serbest bırakmak için:cmd
netsh advfirewall firewall add rule name="ServBay MariaDB" dir=in action=allow program="C:\ServBay\bin\mariadb\<version>\bin\mysqld.exe"
1
Konfigürasyon sorunu (
bind-address
):my.cnf
dosyasındabind-address
parametresi kontrol edilmeli.127.0.0.1
veyalocalhost
olarak ayarlanmışsa sadece yerel bağlantıya izin verir. Diğer makineden bağlantı için0.0.0.0
ya da istenen IP adresini girmeli ve firewall’u da düzenlemelisiniz.
Ağ yapılandırma sorunu (
localhost
çözümü):localhost
denildiğinde doğru şekilde127.0.0.1
(IPv4) veya::1
(IPv6) adresine ulaşılabiliyor mu kontrol edin.
macOS:
bashping localhost # hosts dosyasını kontrol edin cat /etc/hosts
1
2
3Windows:
cmdping localhost # hosts dosyasını kontrol edin type C:\Windows\System32\drivers\etc\hosts
1
2
3Hosts dosyasında
localhost
belirtimini ve proxy kapalı olmasını kontrol edin; zira bu tip uygulamalar yerel trafiği engelleyebilir.
3. MariaDB/MySQL Paketi Başlatılamıyor
Olası Nedenler ve Çözümler:
Hata kaydını kontrol edin (en önemli adım!): Önceki açıklamada belirtildiği şekilde hata kaydında başlatma hatasını inceleyin. Kayıtlar teşhiste belirleyici rol oynar.
- macOS:
/Applications/ServBay/logs/mariadb/<version>/<version>.err
- Windows:
C:\ServBay\logs\mariadb\<version>\<version>.err
- macOS:
Konfigürasyon dosyası hataları: Syntax hatası, geçersiz parametre veya yol yanlışlığı gibi durumlar olabilir.
Konfigürasyon dosyası konumu:
- macOS:
/Applications/ServBay/etc/mariadb/<version>/my.cnf
- Windows:
C:\ServBay\etc\mariadb\<version>\my.cnf
Dosya doğrulama:
bash# macOS /Applications/ServBay/bin/mariadb/<version>/bin/mysqld --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf --validate-config # Windows C:\ServBay\bin\mariadb\<version>\bin\mysqld.exe --defaults-file=C:\ServBay\etc\mariadb\<version>\my.cnf --validate-config
1
2
3
4
5- macOS:
Port meşgul: (Yukarıdaki
lsof -i :<port>
veyanetstat
ile kontrol edin)Disk alanı yetersiz: Veri veya log dizini için yeterli disk alanı gereklidir.
Dizinler:
- macOS: Veri dizini
/Applications/ServBay/db/mariadb/<version>/
, log dizini/Applications/ServBay/logs/mariadb/<version>/
- Windows: Veri dizini
C:\ServBay\db\mariadb\<version>\
, log diziniC:\ServBay\logs\mariadb\<version>\
- macOS: Veri dizini
Dosya izinleri/erişim hakkı: MariaDB/MySQL işlemi doğru dosyalara okuma/yazma hakkına sahip mi? ServBay otomatik ayarlasa da, kurulum dizininde elle değişiklik yaptıysanız sorun olabilir.
macOS izin kontrolü:
bashls -ld /Applications/ServBay/db/mariadb/<version> ls -l /Applications/ServBay/etc/mariadb/<version>/my.cnf ls -ld /Applications/ServBay/logs/mariadb/<version>
1
2
3Veritabanı sürecini çalıştıran kullanıcı (örn:
_mysql
) okuma, yazma ve çalıştırma izinlerine sahip olmalıdır.Windows izin kontrolü: Windows’ta Explorer üzerinden dosya/dizin özelliklerini kontrol edin; ServBay servis hesabının gerekli izinlere sahip olduğuna emin olun.
Veri dosyası bozuldu: (Aşağıda “Veritabanı çökmesi veya veri bozulması” başlığında detay verildi) Kapanma sırasında veya başka bir hata sonrası dosya bozulmuş olabilir ve bu başlatma sorununa yol açar.
Çözüme ulaşıldıktan sonra:
- Paketi yeniden başlatmayı deneyin:
servbayctl restart mariadb <version>
4. Kullanıcı Yetki veya Kimlik Doğrulama Sorunları
Veritabanı sunucusuna başarıyla bağlandıktan sonra kullanıcı adı, parola veya yetki eksikliği gibi hatalar (örn: Access denied
) alabilirsiniz.
Olası Nedenler ve Çözümler:
- Yanlış kullanıcı adı veya parola: Bağlantıda kullandığınız bilgilere tam olarak emin olun. ServBay sayesinde root kullanıcı şifresi kolayca sıfırlanabilir; şifrenizi unuttuysanız bu işlevden faydalanabilirsiniz.
- Kullanıcı host sınırı: Kullanıcı hesabı sadece belirli hostlardan bağlanabiliyor olabilir (örn:
'<username>'@'localhost'
).'<username>'@'127.0.0.1'
ile bağlanmak başarısız olabilir, veya tersi.'%'
kullanılırsa tüm hostlardan bağlantı sağlanabilir. - Yetersiz yetkiler: Kullanıcının hedef veritabanında bağlantı veya işlem yapabilmek için yeterli izni olmayabilir (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP vs).
- Kullanıcı yetkilerini inceleme:
- Root gibi yeterli izne sahip bir kullanıcı ile MariaDB/MySQL’e bağlanın:bash
mysql -u root -p
1 - SQL’de, kullanıcının yetkilerini görüntüleyin:sql
SHOW GRANTS FOR '<username>'@'<hostname>'; -- Ör: 'webapp' kullanıcısının 'localhost'tan bağlanma yetkisini görüntüleme SHOW GRANTS FOR 'webapp'@'localhost'; -- 'admin' kullanıcısının tüm hostlardan bağlanma yetkisini görüntüleme SHOW GRANTS FOR 'admin'@'%';
1
2
3
4
5 - Gerekirse GRANT ve REVOKE komutları ile yetkileri değiştirebilir, yeni kullanıcı oluşturup uygun yetki verebilirsiniz.
- Root gibi yeterli izne sahip bir kullanıcı ile MariaDB/MySQL’e bağlanın:
5. Performans Sorunları
Veritabanı performansının düşmesi uygulamanın genel yanıt hızını olumsuz etkiler.
Olası Nedenler ve Çözümler:
- Yavaş sorgular: Sorgu verimsiz, indeks yok, veya kötü yürütme planı olabilir.
- Yavaş sorgu kaydını açın:
my.cnf
dosyasındaslow_query_log = 1
velong_query_time = 1
ayarlarını yapıp kayıtta performans sorunu olan sorguları inceleyin. EXPLAIN
kullanın: Sorgunun başınaEXPLAIN
ekleyerek yürütme planını analiz edin, indeks kullanımı, okutulan satır sayısı gibi detayları görün.sqlEXPLAIN SELECT * FROM your_table_name WHERE column_name = 'value';
1- Sorguları optimize edin:
EXPLAIN
ile elde ettiğiniz bulgulara göre sorguları tekrar yazın, düşük verimli işlemlerden kaçının (örn: gereksizSELECT *
kullanımı, WHERE’de fonksiyon kullanımı) ve sorguların veya JOIN’lerin indeks kullanabileceğinden emin olun.
- Yavaş sorgu kaydını açın:
- Eksik veya yanlış indeks: Sık sorgulanan, sıralamada (
ORDER BY
) veya gruplamada (GROUP BY
) kullanılan sütunlarda uygun indeks yoksa tablo tam taranabilir.- Tablo ve sorguları analiz edin: Hangi sütunlara indeks eklenmesi gerektiğini belirleyin.
- İndeks oluşturma:sqlNot: İndeksler yazma işlemlerini ve disk kullanımını artırabilir, üretim ortamında dikkatli olun.
CREATE INDEX idx_column_name ON your_table_name(column_name);
1
- Önbellek ayarlarının uygun olmaması:
my.cnf
'deki önbellek parametreleri (innodb_buffer_pool_size
,key_buffer_size
(MyISAM) vs) gereğinden az veya fazla olabilir.- Ayarları optimize edin: Sistemdeki RAM’e ve kullanım amacınıza göre önbellek ayarlarını optimize edin.
innodb_buffer_pool_size
genellikle en önemli parametredir. Tavsiye edilen değer sistem RAM’inin %50–70’idir. Değiştirildikten sonra paketi yeniden başlatmayı unutmayın.ini[mysqld] # Örnek, kendi sisteminize göre MB/GB ayarı yapın innodb_buffer_pool_size = 2G # Sıkça MyISAM tablosu kullanıyorsanız: # key_buffer_size = 256M
1
2
3
4
5
- Ayarları optimize edin: Sistemdeki RAM’e ve kullanım amacınıza göre önbellek ayarlarını optimize edin.
- Donanım darboğazı: CPU, RAM eksikliği, disk I/O sorunları olabilir. macOS’ta Activity Monitor veya terminalden
top
/htop
ile kaynak kullanımını izleyip darboğazı tespit edin.
6. Veritabanı Çökmesi veya Veri Bozulması
Veritabanı başlatılamıyor, çalışma sırasında sık sık çöküyor veya veri erişiminde sorun varsa dosyalar bozulmuş olabilir.
Olası Nedenler ve Çözümler:
- Kayıtları inceleyin: Çökme veya bozulma nedenlerini hata kaydında görebilirsiniz (InnoDB hataları, dosya sistemi, donanım vs).
- macOS:
/Applications/ServBay/logs/mariadb/<version>/<version>.err
- Windows:
C:\ServBay\logs\mariadb\<version>\<version>.err
- macOS:
- Donanım hatası: Disk veya RAM arızaları veri kaydında veya okuma sırasında hata çıkarabilir. Sistem logları veya donanım tanı araçlarıyla inceleme yapın.
- Yazılım çakışması veya bug: MariaDB/MySQL’in belirli sürümlerinde bug olabilir, veya sistemde başka programlarla çakışır.
- Konfigürasyon hatası: Yanlış
my.cnf
parametreleri stabiliteyi bozabilir. - Ani veya zorla kapatma: MariaDB/MySQL’i düzgün şekilde durdurmadan ServBay’i kapatmak veya süreci sonlandırmak veri tutarsızlığına yol açabilir.
Çözüm yolları:
Güvenli yeniden başlatma: ServBay arayüzünden veya komut satırından
servbayctl restart mariadb <version>
ile yeniden başlatmayı deneyin. Bazen sistem kendi kendine kurtarabilir.mysqlcheck
ile kontrol ve onarım: Tabloların bütünlüğünü kontrol ve bazı sorunları onarmak için kullanılabilir (daha çok MyISAM tablolara etkilidir).bash# ServBay my.cnf ve root ile tüm veritabanlarını kontrol edin mysqlcheck --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u root -p --check --all-databases # MyISAM tablolarda otomatik onarım için # mysqlcheck --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u root -p --auto-repair --check --all-databases
1
2
3
4Not:
--auto-repair
sadece MyISAM’a etkilidir. InnoDB için--check
ile problem tespit edilir; onarım için aşağıdaki InnoDB kurtarma veya yedekten geri yükleme gerekir.InnoDB zorunlu kurtarma (
innodb_force_recovery
): InnoDB başlatılamıyorsa bu parametreyle kurtarmayı deneyebilirsiniz. Veri kaybı veya tutarsızlığı büyük risk! Yalnızca başlatılamıyor ve öncelikli hedef veri yedeklemek ise kullanılır.- Önce veri dizinini yedekleyin:
/Applications/ServBay/db/mariadb/<version>/
'ı bir yere kopyalayın. - Problemi olan
my.cnf
dosyasını açın (/Applications/ServBay/etc/mariadb/<version>/my.cnf
). [mysqld]
altınainnodb_force_recovery = N
satırını ekleyin (N: 1’den başlayıp 6’ya kadar denersiniz, her seferde yalnız bir seviye arttırın).- MariaDB/MySQL’i başlatın:
servbayctl start mariadb <version>
. - Başarıyla başlatılırsa (yalnızca okuma modunda bile olsa) hemen
mysqldump
ile tüm veritabanlarını yedekleyin!bashYedek dosyasının varlığını ve boyutunu kontrol edin.mysqldump --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u root -p --all-databases --routines --triggers --events > /path/to/your_emergency_backup.sql
1 - Yedekleme tamamlanınca MariaDB/MySQL’i durdurun:
servbayctl stop mariadb <version>
my.cnf
'deninnodb_force_recovery = N
'i silin veya yoruma alın.- Veri kurtarma: Genellikle yeni bir veri dizini başlatılır (bozuk dizin yeniden adlandırılır/silinir) ve alınan SQL yedeği yeni veritabanına aktarılır.
- Önce veri dizinini yedekleyin:
Yedekten geri yükleme: Onarım veya kurtarma başarılı değilse, en güvenli yol en yakın düzgün yedeğe akıştırmak. ServBay’in yerleşik yedek fonksiyonu yedek dosyalarını bulmanızı sağlar:
/Applications/ServBay/backup/mariadb/<version>/
(ServBay yedek fonksiyonu kullandıysanız).- Örnek geri yükleme komutu (ör:
<target_database_name>
’e yüklemek için):bashNot:# Hedef veritabanı oluşturulmuş olsun # mysql --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u root -p -e "CREATE DATABASE <target_database_name>;" # Yedek dosyasını yükleyin mysql --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u <username> -p <target_database_name> < /Applications/ServBay/backup/mariadb/<version>/<your_backup.sql>
1
2
3
4
5<version>
hedef MariaDB/MySQL paketinin sürümüne göre düzeltilmelidir.
- Örnek geri yükleme komutu (ör:
7. Yedekleme ve Geri Yükleme Sorunları
ServBay’in yerleşik yedek fonksiyonu veya manuel mysqldump
ile yedek/alımda hatalar çıkabilir.
Olası Nedenler ve Çözümler:
- Yedek dosyası tam değil veya bozulmuş:
- Dosya boyutunu kontrol edin (
ls -lh /path/to/your_backup.sql
), beklenen büyüklükte mi bakın. - Dosya içeriğini
less
veya metin editöründe açarak geçerli bir SQL dosyası olup olmadığını kontrol edin. - Manuel yedeklemede hata varsa komutun çıktısını, ServBay yedeğinde uygulama kayıtlarını inceleyin.
- Dosya boyutunu kontrol edin (
- Geri yükleme komutu hatalı:
- Yanlış kullanıcı adı, parola veya hedef veritabanı verilmiş olabilir.
- Kullanıcıda yeterli yetki olmayabilir.
- SQL uyumsuzluğu: Farklı veritabanı (örn: MySQL’den MariaDB’ye) veya sürüm farklılıklarında bazı SQL kodları uyumsuz olabilir.
- Yabancı anahtar kısıtı problemi: Veri yüklerken tablo sırası ya da veri bütünlüğünden ötürü anahtar hata verebilir; geçici olarak kısıtları devre dışı bırakabilirsiniz:sqlDikkat: Bu ayarı geçici tutunuz, zira veri tutarsızlığı riski vardır.
-- Aktarım öncesi SET foreign_key_checks = 0; -- Dosya aktarımı: source /path/to/your_backup.sql; -- mysql istemcisinde -- veya komut satırından: mysql ... < /path/to/your_backup.sql -- Aktarım bitince tekrar etkinleştir SET foreign_key_checks = 1;
1
2
3
4
5
6
7 - Karakter seti veya sıralama kuralı sorunu: Yedek dosyasındaki karakter seti veya sıralama ayarı hedef veritabanı veya tabloyla uyumlu olmayabilir. Uyumlu karakter seti (
utf8mb4
) kullanıldığından emin olun.
Doğru veri tabanı geri yükleme komutları (örnekler):
macOS:
bash
# Yedek dosyası belirli bir veritabanı için ise
# Hedef veritabanı (<target_database_name>) oluşturulmuş olmalı
# mysql --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u root -p -e "CREATE DATABASE <target_database_name>;"
# Uygun config, kullanıcı ve veritabanı ile aktarım yapın
mysql --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u <username> -p <target_database_name> < /Applications/ServBay/backup/mariadb/<version>/<your_backup.sql>
# Tüm veritabanları için ise (--all-databases), veritabanı belirtmeye gerek yoktur
# mysql --defaults-file=/Applications/ServBay/etc/mariadb/<version>/my.cnf -u <username> -p < /Applications/ServBay/backup/mariadb/<version>/<your_backup.sql>
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Windows:
cmd
REM Yedek dosyası spesifik bir veritabanı için ise
REM Hedef veritabanı (<target_database_name>) oluşturulmuş olmalı
REM C:\ServBay\bin\mariadb\<version>\bin\mysql.exe --defaults-file=C:\ServBay\etc\mariadb\<version>\my.cnf -u root -p -e "CREATE DATABASE <target_database_name>;"
REM Aktarım için uygun config, kullanıcı ve veritabanı bilgilerinin girildiğinden emin olun
C:\ServBay\bin\mariadb\<version>\bin\mysql.exe --defaults-file=C:\ServBay\etc\mariadb\<version>\my.cnf -u <username> -p <target_database_name> < C:\ServBay\backup\mariadb\<version>\<your_backup.sql>
REM Tüm veritabanları için ise (--all-databases), veritabanı belirtmeye gerek yoktur
REM C:\ServBay\bin\mariadb\<version>\bin\mysql.exe --defaults-file=C:\ServBay\etc\mariadb\<version>\my.cnf -u <username> -p < C:\ServBay\backup\mariadb\<version>\<your_backup.sql>
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
Not: <version>
ilgili MariaDB/MySQL paket sürümüne uyarlanmalıdır. ServBay’in yerleşik yedek fonksiyonu, kolay geri yüklenebilen dosyalar ve fonksiyonlar üretir, bunları doğrudan ServBay arayüzünden yönetebilirsiniz.
8. Özel Hata/Bug: MariaDB 11.5.1 InnoDB Başlatma Hatası (ib_logfile0 was not found
/ Missing FILE_CHECKPOINT
)
MariaDB 11.5.1 sürümünde bilinen ciddi bir bug nedeniyle InnoDB motoru başlatılamaz ya da logdan geri yükleme yapılamaz; dolayısıyla veritabanı çalışmaz.
Hata kaydı örnekleri:
Hata kaydında aşağıdaki tip mesajlar görebilirsiniz:
macOS örneği (/Applications/ServBay/logs/mariadb/11.5/11.5.err
):
[ERROR] InnoDB: File /Applications/ServBay/db/mariadb/11.5/ib_logfile0 was not found
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
1
2
3
4
2
3
4
Windows örneği (C:\ServBay\logs\mariadb\11.5\11.5.err
):
[ERROR] InnoDB: File C:\ServBay\db\mariadb\11.5\ib_logfile0 was not found
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
1
2
3
4
2
3
4
veya:
[ERROR] InnoDB: Missing FILE_CHECKPOINT(xxxxx) at xxxxx
[ERROR] InnoDB: Log scan aborted at LSN xxxxx
[ERROR] InnoDB: Plugin initialization aborted with error Generic error
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
1
2
3
4
5
2
3
4
5
Bu hatalar, InnoDB motorunun kendi log dosyasını bulamamasından veya işleyememesinden kaynaklandığını gösterir.
Çözüm (Veri aktarımına etki eder; öncelikle yedek alın!):
Bu, rutin çözümle düzeltmesi güç ve tehlikeli bir bug’dur. En sağlam yol, kurtarma modunda başlatıp verileri yedeklemek, ardından başka kararlı bir MariaDB sürümüne aktarmak.
Verileri yedeklemek için zorunlu kurtarma modunu dene (riskli işlem!):
Yapılandırma dosyasının düzenlenmesi:
- macOS:
/Applications/ServBay/etc/mariadb/11.5/my.cnf
- Windows:
C:\ServBay\etc\mariadb\11.5\my.cnf
[mysqld]
kısmınainnodb_force_recovery = 6
ekleyin.Servisi başlatın:
bashservbayctl start mariadb 11.5
1Çalışıyorsa, hemen veri yedekleyin:
macOS:
bashmysqldump --defaults-file=/Applications/ServBay/etc/mariadb/11.5/my.cnf -u root -p --all-databases --routines --triggers --events > /Applications/ServBay/backup/mariadb/11.5/mariadb_11.5_emergency_backup.sql
1Windows:
cmdC:\ServBay\bin\mariadb\11.5\bin\mysqldump.exe --defaults-file=C:\ServBay\etc\mariadb\11.5\my.cnf -u root -p --all-databases --routines --triggers --events > C:\ServBay\backup\mariadb\11.5\mariadb_11.5_emergency_backup.sql
1Yedek dosyasının başarı ve boyutunu kontrol edin.
- macOS:
Problemli sürümün veri dizinini durdur ve işle:
- MariaDB 11.5 paketini durdurun:
servbayctl stop mariadb 11.5
- my.cnf dosyasını açıp,
innodb_force_recovery
satırını silin veya yoruma alın.
- MariaDB 11.5 paketini durdurun: