MySQL Error 1698 — Parola Doğru Değil, Hiç Sorulmuyor?
1698 hatasının nedeni auth_socket eklentisi, sudo mysql ile erişim, parola ile geçiş ve 1045'ten farkı.
Operasyonel Doğrulama & Güvenilirlik Standardı
Hata mesajı semptomdur, kök neden değildir. Sunucuyu yeniden başlatmadan veya rastgele ayar değiştirmeden önce aşağıdaki "Nedeni ayırt eden tek sorgu"yu çalıştırarak gerçek senaryoyu netleştirin.
▸Belirti
ERROR 1698 (28000): Access denied for user 'root'@'localhost'SQLSTATE kodu: 28000.
Bu hata, Debian ve Ubuntu sistemlerinde taze bir MySQL kurulumunun ardından neredeyse kaçınılmaz bir ritüeldir: Terminalde mysql -u root -p yazarsınız, kurulumda belirlediğiniz veya boş bıraktığınız parolayı girersiniz ve anında ERROR 1698 ile karşılaşırsınız.
Sebep bir yetki eksikliği veya parolanın yanlış olması değildir: Kimlik doğrulama eklentisidir (Authentication Plugin).
root@localhost hesabını `auth_socket` eklentisiyle kurar. Bu eklenti parolaları tamamen devre dışı bırakır; bunun yerine istemciyi çağıran Linux işletim sistemi kullanıcısına (UID) bakar.
Yani işletim sisteminde root (veya sudo) değilseniz, doğru parolayı yazsanız bile MySQL sizi içeri almaz!▸Error 1698 ile Error 1045 Arasındaki Fark
- •Error 1045 (`Access denied for user ... Using password: YES`): Kimlik doğrulama mekanizması parolayı kontrol etti ve reddetti. Parola yanlıştır veya host eşleşmemiştir (H-03).
- •Error 1698: Kimlik doğrulama mekanizması parolayı hiç değerlendirmedi. Parola sıfırlama adımları (
--skip-grant-tablesvb.) uygulamak tamamen zaman kaybıdır.
▸Nedenini Doğrulayan Adım
İşletim sistemi yetkisiyle içeri girin (çünkü auth_socket bunu bekler):
sudo mysqlİçeri girdikten sonra root hesabının kimlik doğrulama eklentisini sorgulayın:
SELECT user, host, plugin FROM mysql.user WHERE user = 'root';plugin sütununda auth_socket görüyorsanız teşhis doğrulanmıştır.
▸Adım Adım Kalıcı Çözüm
İhtiyacınıza göre iki ana mimari yaklaşımdan birini seçin:
Yaklaşım 1: Parolalı Girişe Geçiş (Geliştirme Ortamları İçin)
Eğer yerel geliştirme makinenizde phpMyAdmin, DBeaver, DataGrip veya Node.js/Python betikleriyle root olarak bağlanmak istiyorsanız:
-- sudo mysql ile girdikten sonra:
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'GucluParola123!';
FLUSH PRIVILEGES;IDENTIFIED WITH mysql_native_password komutunu kullanmayın. Bu eklenti MySQL 8.0.34'te deprecated edilmiş, MySQL 9.0'da tamamen kaldırılmıştır. Yeni sistemlerde her zaman `caching_sha2_password` kullanın.Yaklaşım 2: auth_socket Modelini Korumak (Üretim Sunucuları İçin)
Üretim ortamlarında root hesabını auth_socket ile bırakmak güçlü bir güvenlik tercihidir:
- •Veritabanı
rootparolası çalınamaz (çünkü parola yoktur). - •Veritabanına yalnızca sunucuya SSH ile bağlanıp
sudoyetkisi olan yetkili sistem yöneticileri erişebilir. - •Doğru Uygulama: Uygulamalarınız için asla
rootkullanmayın; uygulamanıza özel ayrı bir kullanıcı oluşturun:
CREATE USER 'app_user'@'10.0.2.%' IDENTIFIED WITH caching_sha2_password BY 'UygulamaSifresi456!';
GRANT SELECT, INSERT, UPDATE, DELETE ON app.* TO 'app_user'@'10.0.2.%';▸İlgili Hata Rehberleri & Hub Bağlantıları
- •MySQL Access Denied 1045 (H-03) — Parola reddi ve kimlik doğrulama hataları
- •MySQL SELECT Command Denied 1142 (H-42) — Nesne yetkilendirme engelleri
- •MySQL Can't Connect Socket 2002 (H-40) — UNIX soket bağlantı hataları
- •MySQL Hub — Kullanıcı yönetimi ve kimlik doğrulama mimarisi
Diğer Veritabanı Hata Teşhisleri
Kriz anında başvurabileceğiniz diğer doğrulanmış hata rehberleri.
MySQL ERROR 1045 Access denied: root Şifresi Sıfırlama Rehberi
MySQL 1045 hatasının dört nedeni, "using password: YES/NO" ayrımının anlamı ve kilitli kalınca --init-file ile güvenli şifre sıfırlama.
MySQL Deadlock ERROR 1213: Grafiği Okuma ve Kalıcı Önleme
MySQL 1213 deadlock hatasının nedeni, LATEST DETECTED DEADLOCK çıktısını okuma, gap lock kaynaklı kilitlenmeler ve uygulama tarafında retry tasarımı.
MySQL Lock wait timeout exceeded: Bloklayan İşlemi Bulma
1205 lock wait timeout hatasında bloklayan işlemi performance_schema ile bulma, KILL kararını verme ve kilidi kalıcı olarak azaltma yöntemleri.