Windows Sunucuda MySQL Root Şifresi Sıfırlama

Son gözden geçirme: Eylül 2026 · MySQL 8.4 Reference Manual (dev.mysql.com) resmi dokümanına göre

Hızlı çözüm

Windows sunucuda MySQL root şifresi sıfırlama işlemi MySQL servisini durdurup ALTER USER komutu içeren bir init dosyasıyla mysqld’yi başlatmaktan ibarettir; sunucunuzda yönetici olarak Komut İstemi’nde uygulayın.

  1. MySQL servisini durdurun: net stop MySQL84 (servis adınız farklıysa Get-Service *MySQL* ile bulun).
  2. C:\mysql-init.txt dosyasına ALTER USER 'root'@'localhost' IDENTIFIED BY 'YeniSifreniz'; satırını yazın.
  3. mysqld --init-file=C:\mysql-init.txt komutunu çalıştırıp sunucunun başlamasını bekleyin.
  4. Init dosyasını silin, MySQL servisini normal şekilde yeniden başlatın ve yeni şifreyle bağlanın.
Panel Yok — MySQL Server Windows’ta bağımsız bir servis olarak çalışır
Sistem Windows Server 2019, Windows Server 2022 + MySQL Server 8.0/8.4
Yetki Sunucuda yönetici (Administrator) hesabı
Narhost ürünü VDS Sunucu

Başlamadan önce

  • Sunucunuzda yönetici yetkili bir hesapla oturum açabildiğinizi doğrulayın.
  • MySQL servisinizin tam adını bilin (MySQL80, MySQL84 gibi sürüme göre değişir); Get-Service *MySQL* ile listeleyebilirsiniz.
  • Root şifresine bağımlı çalışan uygulamalarınız varsa (site, betik, zamanlanmış görev) şifreyi değiştirdikten sonra onları da güncelleyeceğinizi unutmayın.
  • İşlem öncesi veritabanlarınızın güncel bir yedeğinin olduğundan emin olun.

Windows Sunucuda MySQL Root Şifresi Sıfırlama Neden Gerekir

Root şifresi unutulduğunda ya da bir güvenlik ihlali sonrası zorunlu değişiklik gerektiğinde normal ALTER USER ya da SET PASSWORD komutları çalışmaz; çünkü bu komutların ikisi de root olarak oturum açmayı gerektirir. Bu yöntem bu döngüyü --init-file seçeneğiyle kırar: sunucu başlarken kimlik doğrulaması istemeden çalıştıracağı komutları bu dosyadan okur.

Bilgi

Linux sunucularda aynı işlem --skip-grant-tables ile yapılır; Windows’ta MySQL’in resmi dokümanı --init-file yöntemini önerir, iki yöntem de sunucuyu geçici olarak kimlik doğrulamasız açığa çıkarır.

Windows sunucuda mysql root şifresi sıfırlama akış şeması — servisi durdurma, init dosyası, mysqld başlatma ve doğrulama adımları
Dört adım: servisi durdurun, init dosyasını yazın, güvenli kipte başlatın, sonucu doğrulayın.

Adım Adım MySQL Root Şifresi Sıfırlama

Yöntem 1 — –init-file ile (resmî yöntem)

  1. Yönetici olarak Komut İstemi açın ve MySQL servisini durdurun.
    net stop MySQL84

    Beklenen sonuç: MySQL84 hizmeti durduruluyor. MySQL84 hizmeti başarıyla durduruldu.

  2. Metin düzenleyicide (Not Defteri gibi) C:\mysql-init.txt dosyasını oluşturun ve şu satırı yazın; YeniSifreniz yerine kendi şifrenizi kullanın.
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'YeniSifreniz';

    Beklenen sonuç: dosya düz metin olarak kaydedilir, uzantı .txt kalır.

  3. MySQL’in kurulu olduğu bin klasörüne geçip mysqld’yi init dosyasıyla başlatın.
    cd "C:\Program Files\MySQL\MySQL Server 8.4\bin"mysqld --init-file=C:\mysql-init.txt --console

    Beklenen sonuç: konsolda başlangıç günlükleri akar, init dosyasındaki komut sessizce çalışır; hata yoksa sunucu normal açılış mesajlarını yazmaya devam eder.

  4. Sunucuyu durdurun (Ctrl+C), init dosyasını silin ve servisi normal başlatın.
    del C:\mysql-init.txtnet start MySQL84

    Beklenen sonuç: MySQL84 hizmeti başlatılıyor. MySQL84 hizmeti başarıyla başlatıldı.

Servisi Genel Komutlarla Kontrol Etme

MySQL servisinin sunucuda kurulu ve çalışır durumda olup olmadığını genel Windows komutuyla kontrol edebilirsiniz. Test sunucumuzda MySQL kurulu olmadığı için aşağıdaki çıktı servisin bulunmadığını gösteriyor; kurulu bir sunucuda aynı komut servis adını ve Running durumunu listeler.

Get-Service -Name '*MySQL*'

Test sunucumuzdaki gerçek çıktı: servis bulunamadı (MySQL kurulu değil). Kurulu bir sunucuda beklenen çıktı: Status Running, Name MySQL84.

Doğrulama

Sonuç

Servis normal başladıktan sonra mysql -u root -p ile bağlanıp yeni şifrenizi girin; oturum açılıyorsa işlem tamamlanmıştır. MySQL’in resmi dokümanına göre eski şifre artık geçersizdir.

Hâlâ Çözülmediyse

  • mysqld başlarken “access denied” ya da benzer bir hata veriyor. Init dosyasının yolu ya da içeriği hatalı olabilir; dosyanın düz metin olduğunu ve tek satır ALTER USER komutu içerdiğini kontrol edin.
  • Servis adını bulamıyorsunuz.Get-Service *MySQL* ile tam adı görün; MySQL Installer ile kurulduysa mysqld komutuna --defaults-file parametresini de eklemeniz gerekebilir.
  • Yeni şifreyle hâlâ bağlanamıyorsunuz. Init dosyasını sildiğinizden ve servisi normal modda yeniden başlattığınızdan emin olun; sunucu hâlâ init modundaysa yeni bağlantıları normal kabul etmez.

Narhost desteği

Talebe şunları ekleyin: sunucu adı, MySQL sürümü ve servis adı, denediğiniz adım, aldığınız hata mesajı birebir.

Destek talebi aç

Sıkça Sorulan Sorular

Bu işlem Linux sunucudakinden farklı mı?

Evet. Linux’ta --skip-grant-tables ile tüm yetki kontrolü kapatılır; Windows’ta MySQL’in resmi dokümanı --init-file yöntemini önerir ve komut satırı yolları (bin klasörü, dosya yolları) Windows biçimindedir.

MySQL Installer ile kurduysam bir fark var mı?

Olabilir; bu durumda mysqld komutuna ek olarak --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.4\my.ini" parametresini de eklemeniz gerekir, yoksa sunucu doğru yapılandırma dosyasını bulamaz.

Bu işlem paylaşımlı Windows hostingde yapılabilir mi?

Hayır. Bu adımlar yalnızca kendi Windows Server’ınızın çalıştığı VPS veya VDS ürünlerinde, kendi kurduğunuz MySQL sunucusunda uygulanır; Narhost’un VPS/VDS hatları yönetimsizdir.

İnit dosyasını silmeden servisi normal başlatırsam ne olur?

Sunucu her başlangıçta aynı ALTER USER komutunu tekrar çalıştırmaya kalkar; hatasız çalışsa da gereksizdir, dosyayı silmek en temiz yoldur.

Bu makale sorununuzu çözdü mü?

Çözemediniz mi?

Teknik ekibimiz sunucu tarafındaki ayarları sizin için kontrol edebilir. Destek talebinizde alan adınızı ve aldığınız hata metnini paylaşmanız süreci hızlandırır.

İlgili çözümler