Eğer siz de benim gibi Mysql workbench yada benzeri programları güncelledikten sonra, her zaman bağlandığınız veritabanına bağlanmaya çalışırken bu uyarıyı almışsanız, bilin ki yalnız değilsiniz.
Sorun MySql’in kullanıcı şifrelerini saklama yönteminden kaynaklanıyor. mysql 4.1 ve öncesi için şifreleme 16 byte olduğu için, sonraki sürümlerde, 41 byte’a çıkarıldığında, şifreleme için fonksiyonlar değiştirilmiş. Siz mysql 5.0 ve üstü bir sürüm kullanıyor bile olsanız, örneğin plesk ile birlikte gelen sürüm (galiba sonradan güncellendiği için) hala eski şifreleme yöntemini kullanıyor olabilir. Biz de şimdi kullanıcıların şifrelerini tekrar 41 byte olarak güncelleyeceğiz.
Öncelikle bunun için mysql’in root erişimine sahip olmanız yada açtığınız kullanıcının ssh üzerinde çalışıyor olması gerekli. Eğer windows sunucu kullanıyorsanız uzak masaüstü ile bağlanarak da aşağıdaki komutları çalıştırabilirsiniz. Ben linux kullandığım için ssh ile bağlanıyorum.
komut penceresinde ssh bağlantısı sağlandıktan, yada windows üzerinde komut istemini açtıktan sonra şunları yazıyoruz:
1 |
mysql --user=kullanici_adi --password=sifreniz |
bu satırla birlikte, bağlantı başarılı olursa, mysql sürüm bilgisi vb. bilgilerin yer aldığı bir karşılama mesajı görünecektir. Hemen sonrasında varsayılan olarak MySql’in hangi şifreleme metodunu kullandığını öğrenmek için basitçe şunu yazabiliriz;
1 |
SELECT PASSWORD('12345'); |
Bu koda cevap olarak dönen değer eğer 16 byte(16 karakter) ise, sistem eski yöntemi kullanıyor demektir. Devam edelim;
1 2 |
SET @@session.old_passwords = 0; SELECT @@session.old_passwords, @@global.old_passwords; |
2. satırla birlikte sol taraftaki değer 0(sıfır) sağ taraftaki değer ise 1(bir) olması gerekli. Şimdi şifre yöntemini geçici olarak 41 byte’a ayarlamış olduk. Bundan sonra, bu oturumda oluşturacağımız ve güncelleyeceğimiz kullanıcıların şifreleri 41 byte olarak kayıt edilecektir.
1 |
SET PASSWORD FOR 'kullanici_adi'= PASSWORD('yeni_sifre'); |
burada ‘kullanici_adi’ yazan kısma, mysql’e bağlanırken kullandığınız kullanıcı adınız, ‘yeni_sifre’ yazan kısma da ister kullanmış olduğunuz şifreyi, isterseniz yeni bir şifre yazabilirsiniz. Hemen ardından daha önce hata aldığınız mysql workbench yada diğer istemcilerden, tekrar bağlanmaya çalıştığınızda, hatasız bağlanabildiğinizi göreceksiniz.