Kısa cevap: CentOS'ta MariaDB kurmak için sudo dnf -y install mariadb-server komutunu çalıştırın (CentOS 7'de yum). Ardından sudo systemctl enable --now mariadb ile servisi başlatın ve sudo mysql_secure_installation ile ilk güvenlik ayarlarını yapın. Daha yeni bir sürüm için resmî MariaDB deposunu kullanın.

MariaDB; MySQL uyumluluğu, yüksek performansı ve aktif topluluk desteğiyle yaygın kullanılan bir veritabanıdır. Aşağıdaki adımlarla CentOS 7 ile CentOS Stream 8/9 üzerinde MariaDB kurulumunu, ilk güvenlik ayarlarını, servis yönetimini ve uzaktan erişimi yapılandırabilirsiniz.

Önemli: CentOS Linux 7'nin desteği 30 Haziran 2024'te, CentOS Stream 8'in desteği 31 Mayıs 2024'te sona erdi. CentOS 7 paketleri vault.centos.org arşivine taşındığı için varsayılan depo ayarlarıyla yum komutları hata verebilir. Yeni kurulumlarda desteklenen bir sürümü (CentOS Stream 9'un desteğinin 2027'de bitmesi bekleniyor) ya da AlmaLinux, Rocky Linux gibi RHEL 8/9 uyumlu bir dağıtımı tercih etmeniz daha güvenli olur.

Ön koşullar

  • Root ya da sudo yetkisi.
  • Sunucunun saat ve DNS ayarlarının doğru olması (TLS ve depo erişimi için).
  • Uzaktan erişim gerekiyorsa güvenlik duvarında TCP 3306 portu.

1. Sistemi güncelleyin

# CentOS 7
sudo yum -y update

# CentOS Stream 8/9
sudo dnf -y upgrade

2. MariaDB'yi kurun

Dağıtımın varsayılan depolarından kurulum en sorunsuz yöntemdir. Daha güncel bir sürüme ihtiyacınız varsa 11. adımdaki resmî depo bölümüne bakın.

# CentOS 7
sudo yum -y install mariadb-server

# CentOS Stream 8/9
sudo dnf -y install mariadb-server

3. Servisi başlatın ve otomatik başlatmayı açın

sudo systemctl enable --now mariadb
systemctl status mariadb
journalctl -u mariadb -n 100 --no-pager

İlk komut servisi hem başlatır hem de sunucu açıldığında otomatik başlayacak şekilde ayarlar. Diğer ikisi servis durumunu ve son 100 günlük satırını gösterir.

4. İlk güvenlik ayarlarını yapın

Kurulumdan sonra temel güvenliği uygulayın. mysql_secure_installation, root parolası, anonim hesaplar ve test veritabanı gibi adımları yönetir.

sudo mysql_secure_installation

Önerilen akış:

  1. Root için parola belirleyin.
  2. Anonymous kullanıcıları kaldırın (YES).
  3. Remote root girişini kapatın (YES).
  4. Test veritabanını kaldırın (YES).
  5. Yetkileri yeniden yükleyin (YES).

Red Hat belgeleri, MariaDB 10.5 ve üzeri sürümlerde güvenli varsayılanların zaten uygulandığını ve bu betiğin değerinin azaldığını belirtiyor. Yine de ayarları gözden geçirmek için çalıştırabilirsiniz.

5. Yerel bağlanma ve temel komutlar

# Yerel istemci
mysql -u root -p

# Sunucuda sürüm ve durum
mysqladmin -u root -p version
mysqladmin -u root -p status

6. Veritabanı ve kullanıcı oluşturma

mysql -u root -p -e "
CREATE DATABASE appdb DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'BURAYA_GUCLU_PAROLA';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'localhost';
FLUSH PRIVILEGES;"

BURAYA_GUCLU_PAROLA yerine kendi güçlü parolanızı yazın. Parolada ! karakteri kullanıyorsanız bu komutu çift tırnak içinde çalıştırmayın. Bash bu karakteri geçmiş komutu olarak yorumlar ve "event not found" hatası verir. Bu durumda mysql -u root -p ile istemciye girip SQL satırlarını orada çalıştırın. Komut satırına yazılan parola ayrıca kabuk geçmişinde kalır.

7. Uzaktan erişim (isteğe bağlı)

Veritabanına ağ üzerinden bağlanmanız gerekiyorsa üç şey yapın: bind-address ayarını açın, kullanıcıyı % ile yetkilendirin ve güvenlik duvarında 3306 portuna izin verin.

Önce sunucu yapılandırma dosyasını düzenleyin. Dağıtımın kendi paketinde bu dosya genellikle /etc/my.cnf.d/mariadb-server.cnf (CentOS 7'de /etc/my.cnf), resmî depodan kurulumda /etc/my.cnf.d/server.cnf olur. [mysqld] bölümüne şunu ekleyin:

bind-address=0.0.0.0

Özel bir port kullanacaksanız aynı bölüme port=3306 satırını ekleyip numarayı değiştirin. Belirli bir IP adresine bağlanmak isterseniz 0.0.0.0 yerine sunucunun IP adresini yazabilirsiniz. Ardından servisi yeniden başlatın:

sudo systemctl restart mariadb

Sonra uzak kullanıcıyı yetkilendirin. Bunu yalnızca gerektiğinde yapın.

mysql -u root -p -e "
CREATE USER 'appuser'@'%' IDENTIFIED BY 'BURAYA_GUCLU_PAROLA';
GRANT ALL PRIVILEGES ON appdb.* TO 'appuser'@'%';
FLUSH PRIVILEGES;"

% her adresten bağlantıya izin verir. Mümkünse bunun yerine yalnızca uygulama sunucusunun IP adresini yazın.

Ardından firewalld kurallarını ekleyin:

sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

Bu kural 3306 portunu tüm adreslere açar. Mümkünse erişimi yalnızca güvendiğiniz IP adreslerine sınırlayın.

Varsayılan 3306 dışında bir port kullanacaksanız SELinux için de port tanımı gerekir. Örneğin 3307 için:

sudo semanage port -a -t mysqld_port_t -p tcp 3307
sudo systemctl restart mariadb

semanage komutu yoksa policycoreutils-python-utils paketini kurun (CentOS 7'de policycoreutils-python).

8. Performans için hızlı başlangıç ayarları

Aşağıdaki ayarlar trafiğe göre değişse de sıklıkla başlangıç noktası olarak kullanılır. Değerleri RAM ve iş yükünüze göre belirleyin.

# Yapılandırma dosyası → [mysqld] bölümü
innodb_buffer_pool_size=1G
innodb_log_file_size=256M
max_connections=300
thread_cache_size=64
table_open_cache=4096

Değişiklikten sonra servisi yeniden başlatın:

sudo systemctl restart mariadb

9. Yedekleme ve geri yükleme

# Veritabanı yedeği (sıkıştırılmış)
mysqldump -u root -p appdb | gzip > /backups/appdb_$(date +%F).sql.gz

# Geri yükleme
gunzip -c /backups/appdb_2025-01-01.sql.gz | mysql -u root -p appdb

/backups dizininin önceden var olduğundan emin olun ve geri yüklemede dosya adındaki tarihi kendi yedeğinize göre değiştirin.

10. Loglar ve sorun giderme

  • Hizmet günlükleri: journalctl -u mariadb
  • Hata günlükleri: /var/log/mariadb/mariadb.log veya /var/log/mysql/mysqld.log (dağıtıma göre değişebilir)
  • Yapılandırma kontrolü: mysqladmin -u root -p variables veya SQL istemcisinde SHOW VARIABLES;
  • Bağlantı testi: mysql -h SUNUCU_IP -u appuser -p

11. (İsteğe bağlı) Resmî MariaDB deposundan daha güncel sürüm

Daha yeni bir MariaDB sürümü istiyorsanız resmî MariaDB deposunu ekleyebilirsiniz. Önce /etc/yum.repos.d/MariaDB.repo dosyasını oluşturun. VER yerine istediğiniz sürümü yazın (ör. 10.11 veya 11.8) ve sürümün sisteminize uygun olduğundan emin olun.

[mariadb]
name=MariaDB
baseurl=https://rpm.mariadb.org/VER/rhel/$releasever/$basearch
gpgkey=https://rpm.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1
module_hotfixes=1

Bu tek dosya CentOS 7 ile CentOS Stream 8/9 için de geçerlidir. $releasever ve $basearch değerlerini yum ya da dnf kendisi doldurur. Sonra paketi kurun:

# CentOS 7
sudo yum clean all
sudo yum -y makecache
sudo yum -y install MariaDB-server

# CentOS Stream 8/9
sudo dnf clean all
sudo dnf -y makecache
sudo dnf -y install MariaDB-server

Not: Daha önce dağıtım deposundan MariaDB veya MySQL paketleri kurduysanız, sürüm çakışmasını önlemek için bunları kaldırıp (verilerinizi yedekleyerek) resmî depodan yeniden kurun.

12. Güncelleme ve kaldırma

# Güncelleme
sudo yum -y update 'mariadb*'     # CentOS 7
sudo dnf -y upgrade 'mariadb*'    # Stream 8/9

# Kaldırma
sudo systemctl disable --now mariadb
sudo yum -y remove 'mariadb*'     # CentOS 7
sudo dnf -y remove 'mariadb*'     # Stream 8/9

Resmî depodan kurduysanız paket adları MariaDB- ile başlar (MariaDB-server gibi). mariadb* bunlarla eşleşmeyebilir, bu durumda MariaDB-* yazın.

Paketi kaldırmak verilerinizi silmez. Veriler genellikle /var/lib/mysql altında kalır. Yapılandırma dosyaları /etc/my.cnf ve /etc/my.cnf.d içinde, günlükler /var/log/mariadb altındadır. Bunları silmeden önce yedek alın.

¿Fue útil la respuesta? 0 Los Usuarios han Encontrado Esto Útil (0 Votos)