MariaDB Servis Hata Ayıklama Rehberi
MariaDB, birçok uygulama alanında yaygın olarak kullanılan açık kaynaklı bir ilişkisel veritabanı yönetim sistemidir. Genellikle MariaDB stabil çalışsa da, bazı durumlarda hizmet çökmeleri veya performans sorunlarıyla karşılaşabilirsiniz. Bu makalede, macOS işletim sistemi üzerinde çalışan ve farklı MariaDB sürümleri içeren ServBay'de MariaDB servisinin nasıl hata ayıklanacağı detaylı bir şekilde ele alınacaktır. Bu rehberde yaygın sorunlar, teşhis adımları ve çözümler yer almaktadır.
Yaygın Sorunlar ve Çözümleri
1. MariaDB Servisi Başlatılamıyor
Muhtemel Nedenler
- Hatalı yapılandırma dosyası
- Kullanılan portun başka bir işlem tarafından kullanılması
- Yetki problemleri
Çözümler
Yapılandırma dosyasını kontrol edin:
my.cnf
dosyasının sözdiziminin doğru olduğundan emin olun. Dosya yolu:bash/Applications/ServBay/etc/mariadb/11.3/my.cnf
1Yapılandırma dosyasını doğrulamak için aşağıdaki komutu kullanın:
bashmysqld --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf --validate-config
1Port kullanımını kontrol edin: MariaDB'nin kullandığı portun (varsayılan 3306) başka bir işlem tarafından kullanılmadığından emin olun. Port kullanımı için aşağıdaki komutu kullanın:
bashlsof -i :3306
1Yetkileri kontrol edin: MariaDB veri dizini ve yapılandırma dosyasının yetkilerinin doğru olduğundan emin olun. Yetkileri kontrol etmek için aşağıdaki komutları kullanın:
bashls -l /Applications/ServBay/db/mariadb/11.3 ls -l /Applications/ServBay/etc/mariadb/11.3/my.cnf
1
2Servisi başlatın: MariaDB servisini yeniden başlatmayı deneyin:
bashservbayctl restart mariadb 11.3
1
2. MariaDB'ye Bağlanamıyor
Muhtemel Nedenler
- MariaDB servisi çalışmıyor
- Güvenlik duvarı bağlantıyı engelliyor
- Kullanıcı yetki problemi
Çözümler
Servis durumunu kontrol edin: MariaDB servisinin çalıştığından emin olun:
bashservbayctl status mariadb 11.3
1Güvenlik duvarı ayarlarını kontrol edin: Güvenlik duvarının MariaDB portuna (varsayılan 3306) izin verdiğinden emin olun:
bashsudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/ServBay/bin/mysqld sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/ServBay/bin/mysqld
1
2Kullanıcı yetkilerini kontrol edin: Kullanıcının veritabanına bağlanmak için yeterli yetkilere sahip olduğundan emin olun:
sqlSHOW GRANTS FOR 'your_username'@'localhost';
1Bağlantı testini yapın: Bağlantıyı test etmek için aşağıdaki komutu kullanın:
bashmysql --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf -u your_username -p -h localhost -P 3306
1
3. Performans Sorunları
Muhtemel Nedenler
- Optimizasyon olmayan sorgular
- Yanlış yapılandırılmış önbellek
- Eksik indeksler
Çözümler
Sorguları optimize edin:
EXPLAIN
ile sorgu performansını analiz edin ve gerekli optimizasyonları yapın:sqlEXPLAIN SELECT * FROM your_table_name WHERE column_name = 'value';
1Önbelleği ayarlayın:
my.cnf
dosyasındaki önbellek ayarlarını düzenleyin, örneğin:[mysqld] query_cache_size = 64M innodb_buffer_pool_size = 1G
1
2
3Indeks oluşturun: Sık kullanılan sorgulardaki kolonlar için indekslerin oluşturulduğundan emin olun:
sqlCREATE INDEX idx_column_name ON your_table_name(column_name);
1
4. Veritabanı Çökmesi
Muhtemel Nedenler
- Donanım arızası
- Yazılım çatışması
- Yanlış yapılandırma
Çözümler
Hata günlüklerini kontrol edin: MariaDB hata günlüğünü kontrol edin ve çökme nedenini bulun. Hata günlüğü yolu:
bash/Applications/ServBay/logs/mariadb/11.3.err
1Veritabanını onarın:
mysqlcheck
aracını kullanarak veritabanını onarın:bashmysqlcheck --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf -u your_username -p --auto-repair --all-databases
1Verileri geri yükleyin: Eğer veritabanı dosyaları bozulmuşsa, yedekten verileri geri yükleyin. Yedek dosya yolu:
bash/Applications/ServBay/backup/mariadb/11.3
1
5. Yedekleme ve Geri Yükleme Sorunları
Muhtemel Nedenler
- Yedek dosyasının bozulması
- Hatalı geri yükleme komutları
Çözümler
Yedek dosyasını kontrol edin: Yedek dosyasının eksiksiz ve bozulmamış olduğundan emin olun. Dosya boyutu ve bütünlüğü kontrol etmek için aşağıdaki komutu kullanın:
bashls -lh /Applications/ServBay/backup/mariadb/11.3/your_backup.sql
1Veritabanını doğru şekilde geri yükleyin:
mysql
aracını kullanarak veritabanını geri yükleyin:bashmysql --defaults-file=/Applications/ServBay/etc/mariadb/11.3/my.cnf -u your_username -p your_database < /Applications/ServBay/backup/mariadb/11.3/your_backup.sql
1
Spesifik Sorun: ib_logfile0 was not found
ve InnoDB: Missing FILE_CHECKPOINT(47594) at 47594
Muhtemel Nedenler
- MariaDB 11.5.1 sürümündeki bir hata
Hata Günlükleri
240618 22:37:46 mysqld_safe Starting mariadbd daemon with databases from /Applications/ServBay/db/mariadb/11.5
2024-06-18 22:37:46 0 [Note] Starting MariaDB 11.5.1-MariaDB-log source revision 65079ece42f383bdeb9b3f913a833a6f0123919d as process 3323
2024-06-18 22:37:46 0 [Warning] Setting lower_case_table_names=2 because file system for /Applications/ServBay/db/mariadb/11.5/ is case insensitive
2024-06-18 22:37:47 0 [Warning] --innodb-file-per-table is deprecated and will be removed in a future release
2024-06-18 22:37:47 0 [Note] InnoDB: Compressed tables use zlib 1.3.1
2024-06-18 22:37:47 0 [Note] InnoDB: Number of transaction pools: 1
2024-06-18 22:37:47 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2024-06-18 22:37:47 0 [Note] InnoDB: Initializing buffer pool, total size = 4.000GiB, chunk size = 64.000MiB
2024-06-18 22:37:47 0 [Note] InnoDB: Completed initialization of buffer pool
2024-06-18 22:37:47 0 [ERROR] InnoDB: File /Applications/ServBay/db/mariadb/11.5/ib_logfile0 was not found
2024-06-18 22:37:47 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2024-06-18 22:37:47 0 [Note] InnoDB: Starting shutdown...
2024-06-18 22:37:47 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2024-06-18 22:37:47 0 [Note] Plugin 'FEEDBACK' is disabled.
2024-06-18 22:37:47 0 [Note] Plugin 'wsrep-provider' is disabled.
2024-06-18 22:37:47 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2024-06-18 22:37:47 0 [ERROR] Aborting
240618 22:37:48 mysqld_safe mysqld from pid file /Applications/ServBay/tmp/mariadb-11.5.pid ended
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
240618 23:22:28 mysqld_safe Starting mariadbd daemon with databases from /Applications/ServBay/db/mariadb/11.5
2024-06-18 23:22:28 0 [Note] Starting MariaDB 11.5.1-MariaDB-log source revision 65079ece42f383bdeb9b3f913a833a6f0123919d as process 6667
2024-06-18 23:22:28 0 [Warning] Setting lower_case_table_names=2 because file system for /Applications/ServBay/db/mariadb/11.5/ is case insensitive
2024-06-18 23:22:29 0 [Warning] --innodb-file-per-table is deprecated and will be removed in a future release
2024-06-18 23:22:29 0 [Note] InnoDB: Compressed tables use zlib 1.3.1
2024-06-18 23:22:29 0 [Note] InnoDB: Number of transaction pools: 1
2024-06-18 23:22:29 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2024-06-18 23:22:29 0 [Note] InnoDB: Initializing buffer pool, total size = 4.000GiB, chunk size = 64.000MiB
2024-06-18 23:22:29 0 [Note] InnoDB: Completed initialization of buffer pool
2024-06-18 23:22:29 0 [ERROR] InnoDB: Missing FILE_CHECKPOINT(47594) at 47594
2024-06-18 23:22:29 0 [ERROR] InnoDB: Log scan aborted at LSN 47594
2024-06-18 23:22:29 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2024-06-18 23:22:29 0 [Note] InnoDB: Starting shutdown...
2024-06-18 23:22:29 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2024-06-18 23:22:29 0 [Note] Plugin 'FEEDBACK' is disabled.
2024-06-18 23:22:29 0 [Note] Plugin 'wsrep-provider' is disabled.
2024-06-18 23:22:29 0 [ERROR] Unknown/unsupported storage engine: InnoDB
2024-06-18 23:22:29 0 [ERROR] Aborting
240618 23:22:29 mysqld_safe mysqld from pid file /Applications/ServBay/tmp/mariadb-11.5.pid ended
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Çözümler
MariaDB Ayarlarını Değiştirme makalesine referansla, my.cnf
dosyasını bulun ve aşağıdaki adımları takip edin:
my.cnf
dosyasının[mysqld]
bölümüneinnodb_force_recovery = 6
ekleyinKonfigürasyon dosyasını düzenleyerek
[mysqld]
kısmına aşağıdaki satırı ekleyin:iniinnodb_force_recovery = 6
1MariaDB'yi Başlatın
MariaDB'yi başlatmak için aşağıdaki komutu kullanın:
bashservbayctl start mariadb 11.5
1MariaDB'yi Yedekleyin
mysqldump
komutunu kullanarak tüm veritabanını yedekleyin:bashmysqldump -uroot -p --all-databases --opt > /Applications/ServBay/backup/mariadb/11.5/mariadb_backup.sql
1MariaDB Servisini Devre Dışı Bırakın
ServBay yönetim panelinde, MariaDB 11.5 servisini devre dışı bırakın.
my.cnf
dosyasındaninnodb_force_recovery = 6
satırını kaldırınKonfigürasyon dosyasını düzenleyerek aşağıdaki satırı kaldırın:
iniinnodb_force_recovery = 6
111.5
Dizinini Yeniden AdlandırınMariaDB veri dizinini
11.5
yerine11.5.bak
olarak yeniden adlandırın:bashmv /Applications/ServBay/db/mariadb/11.5 /Applications/ServBay/db/mariadb/11.5.bak
1Diğer MariaDB Sürümüne Geçin
Sorunsuz bir MariaDB sürümüne geçiş yapın, örneğin MariaDB 11.5.0 veya diğer sürümler 11.3, 11.4.
MariaDB Yedeklemesini Geri Yükleyin
mysql
komutunu kullanarak veritabanını geri yükleyin:bashmysql -uroot -p < /Applications/ServBay/backup/mariadb/11.5/mariadb_backup.sql
1
Özet
MariaDB, güçlü ve esnek bir veritabanı yönetim sistemidir, ancak kullanım sırasında çeşitli sorunlarla karşılaşılabilir. Bu makale sayesinde MariaDB servisinin hata ayıklaması, yaygın sorunların teşhisi ve çözüm yöntemleri hakkında bilgi sahibi olabilirsiniz. Bu makalenin size yardımcı olmasını umarız; herhangi bir sorunuz ya da daha fazla yardıma ihtiyacınız olursa, bizimle iletişime geçmekten çekinmeyin.