Unutulan MySQL Root Parolası

Sunucu yöneticisi olarak kendi makinenizde root parolasını unuttuysanız SSH ile fiziksel veya konsol erişiminiz varsa sıfırlama mümkündür. Başkasının veritabanına izinsiz erişim yasadışıdır; bu rehber yalnızca yetkili sistem yöneticileri içindir. Etik ve yasal kullanım sınırına dikkat edin.

MySQL 5.7 ve 8.0 sürümlerinde adımlar farklıdır. 8.0'da authentication_policy ve caching_sha2_password varsayılandır. Yedekleme almadan müdahale etmeyin; skip-grant-tables modu geçici güvenlik açığı oluşturur.

skip-grant-tables Yöntemi

systemctl stop mysqld ile servisi durdurun. mysqld_safe --skip-grant-tables --skip-networking ile başlatın veya systemd override oluşturun. mysql -u root ile parolasız girin. FLUSH PRIVILEGES; sonrası ALTER USER ile yeni parola tanımlayın.

İşlem bitince normal modda mysqld yeniden başlatın. skip-networking dış bağlantıları engeller; yalnızca localhost kullanın. Bu sürede sunucuyu internete açık bırakmayın.

Alternatif Yöntemler

Debian-sys-maint kullanıcı parolası /etc/mysql/debian.cnf dosyasında saklanır; bu hesapla root yetkisi kazanabilirsiniz. cPanel ve Plesk panellerinde arayüzden sıfırlama vardır. Docker container'da environment variable ile ilk kurulum parolası set edilir.

  • Yalnızca sahibi olduğunuz sunucularda uygulayın.
  • Sıfırlama öncesi mysqldump ile yedek alın.
  • Güçlü root parolası ve ayrı uygulama kullanıcıları kullanın.
  • Root uzaktan girişini kapatın; bind-address kontrol edin.
  • İşlem loglarını güvenlik denetimi için saklayın.

MySQL 8.0 Farkları

ALTER USER 'root'@'localhost' IDENTIFIED BY 'yeni_parola'; komutu flush sonrası çalışır. auth_socket plugin Ubuntu'da sudo mysql ile parolasız giriş sağlar; production'da devre dışı bırakın.

Güvenlik Sonrası

Parola yöneticisinde root bilgisini saklayın. Uygulamalar için ayrı kullanıcı ve minimum yetki prensibi uygulayın. fail2ban ve firewall ile 3306 portunu dış dünyaya kapatın. Düzenli güncelleme ve audit log etkinleştirin.

Bulut yönetilen RDS veya Cloud SQL kullanıyorsanız konsol üzerinden master parola sıfırlama farklıdır; snapshot alın.

Sonuç

SSH erişimi olan yetkili yönetici root parolasını güvenli biçimde sıfırlayabilir. İzinsiz sistemlerde aynı teknikleri kullanmak suç teşkil eder; yasal sınırlara uyun.

Replikasyon ve Yedekleme

Slave önce read-only yükseltilir. Galera rolling upgrade sırası kritiktir. Binary log point-in-time recovery sağlar. mysqldump --single-transaction InnoDB tutarlılığı korur. Percona XtraBackup fiziksel yedek hızlıdır.

Güvenlik ve Etik

mysql_secure_installation anonim kullanıcı kaldırır. bind-address 127.0.0.1 dış erişimi kapatır. Root şifresini SSH üzerinden sıfırlamak yalnızca sahip olduğunuz sunucuda yapılmalıdır; izinsiz erişim cezai sorumluluk doğurur. fail2ban brute force engeller.

Cloud ve Container

RDS snapshot alın; konsol sıfırlama farklı adımlar gerektirir. Docker env variable ilk parola set eder. Change log root sıfırlama işlemini kaydeder; audit compliance için saklayın.

skip-grant-tables acil modda yetki kontrolünü devre dışı bırakır. İşlem bitince mutlaka kapatın. systemd unit override ile geçici başlatma yapılır.

Adım Adım Sıfırlama

Sunucuya fiziksel veya out-of-band erişiminiz olduğundan emin olun. systemctl stop mysqld ile servisi durdurun. --skip-grant-tables --skip-networking ile başlatın. mysql -u root ile bağlanıp ALTER USER komutu çalıştırın.

İşlem bitince normal modda yeniden başlatın. skip-networking dış erişimi kapattığı için uzaktan exploit penceresi daraltılır. Root parolasını password manager'da saklayın.

Alternatif Yöntemler

init_file ile başlangıç SQL scripti çalıştırılabilir. Debian-sys-maint kullanıcısı eski kurulumlarda yedek erişim sağlar. Docker container'da env MYSQL_ROOT_PASSWORD override edilir.

Sonuç

MySQL root şifresi sıfırlama acil durum prosedürüdür; rutin yönetim aracı değildir. skip-grant-tables modu yalnızca kısa süreli kullanılmalı ve işlem bitince servis normal modda yeniden başlatılmalıdır. Parola politikası güçlü karmaşıklık ve düzenli rotasyon gerektirir. Yalnızca yetkili olduğunuz sunucularda uygulayın.

Replikasyon Senaryosu

Master down durumunda slave promote edilir; root sıfırlama her iki node'da senkron tutulmalıdır. Galera cluster quorum kaybında bootstrap prosedürü uygulanır. Percona Toolkit pt-table-checksum veri tutarlılığını doğrular.

Audit Trail

General log tablosu root bağlantılarını kaydeder. mysqladmin processlist aktif sorguları gösterir. Değişiklik ticket numarası change management kaydına yazılmalıdır.

Root parola sıfırlandıktan sonra application kullanıcılarına gerekli GRANT yeniden verilmelidir. Uygulama connection string vault'ta güncellenir.

MySQL 8.0 auth plugin değişikliği eski istemcileri etkileyebilir; uyumluluk matrisini kontrol edin.

Production veritabanında root ile günlük işlem yapmak yerine sınırlı yetkili uygulama hesabı kullanın.

InnoDB redo log boyutu yoğun yazma iş yükünde performansı etkiler; my.cnf içinde innodb_log_file_size değerini dokümantasyona göre ayarlayın.

Slow query log analizi indeks eksikliğini ortaya çıkarır.

Replication lag monitoring Prometheus exporter ile Grafana dashboard oluşturulabilir.

systemd Override ve Percona

override.conf skip-grant-tables geçici mod açar. pt-show-grants yetkileri dışa aktarır. Replication ortamında master-slave sırası korunmalıdır.

MySQL 8.0 ve Audit

ALTER USER flush sonrası çalışır. auth_socket Ubuntu'da sudo mysql sağlar. Root sıfırlama syslog'a düşer; izinsiz erişim suç teşkil eder.

Vault ve Parola Politikası

HashiCorp Vault dinamik kimlik bilgisi üretir. validate_password karmaşıklık kuralı zorunlu kılar. skip-networking dış bağlantıları engeller.