Aylardır yerel test sunucumuzda çalışan MySQL örneğine bir SSH tüneli üzerinden sorunsuz bir şekilde bağlanıyorum. Aniden, düşünebileceğim hiçbir değişiklik olmadan, sunucu Sequel Pro'nun girişindeki günlüğü hata ile reddetmeye başladı:
Erişim engellendiği için 127.0.0.1 ana bilgisayarına bağlanılamıyor.
Kullanıcı adınızı ve şifrenizi tekrar kontrol edin ve mevcut konumunuzdan erişime izin verildiğinden emin olun.
MySQL: 'root' @ 'localhost' kullanıcısı için erişim reddedildi (şifre kullanarak: YES)
SSH tünelinden değil, doğrudan sunucuya SSH üzerinden bağlandığında terminalden oturum açabiliyorum. Sorun Sequel Pro ya da sadece kendime özgü değil, MySQL Workbench aracılığıyla ofisteki diğer kişilerle bağlanırken aynı hatayı alıyorum. Şifreyi mysqladmin
sadece akıl sağlığı için sıfırladım, kesinlikle sorun değil.
Ben daha içine bakmaya başladığımda hata Sequel Pro girilen "127.0.0.1" yerine, sunucu "localhost" olarak bildiriyor olduğunu fark ettim. Bir arkadaşım bunun muhtemelen sadece hatalı hata işlemeyi önerdi, ancak MySQL'de localhost ve 127.0.0.1 arasındaki önemli fark göz önüne alındığında garip görünüyor.
Tünel oluşturma sorununu çözme girişiminde, doğrudan bağlanabilmek için root @% 'a erişim izni verdim. Bu çoğunlukla çalışır, tablo verilerini görüntüleyebilir, yeni veritabanları oluşturabilirim vb. Tek sorun kullanıcı oluşturmaya geldiğimde hatayı alıyorum:
'Root' @ '%' kullanıcısı için erişim reddedildi (şifre kullanarak: YES)
Garip bir şekilde kullanıcı aslında yaratılmış, bence bu sadece hibe ile ilgili bir sorun. Yine de, terminalden root olarak giriş yaptığımda her şeyi yapabilirim.
Herkes neden tünel bağlantılarının ve (muhtemelen) hibe komutlarının erişim reddedildi hatasını aldığına ışık tutmaya yardımcı olabilir mi?
Referans olarak MySQ, Homebrew üzerinden bir MAC OS X Server makinesine yüklenmiş olan varsayılan ayarlara sahip 5.6.16 sürümüdür.
Güncelleme
Kökte şu anda erişim izni verilen ana bilgisayarların listesi:
mysql> select host,user from mysql.user where user='root';
+----------------+------+
| host | user |
+----------------+------+
| % | root |
| 127.0.0.1 | root |
| ::1 | root |
| localhost | root |
+----------------+------+
4 rows in set (0.00 sec)
Anladığım kadarıyla, ilk satır ("%") diğerlerini gereksiz kılmalı mı?
Güncelleme 2
Hibe sorunu düzeltildi; root @% kullanıcısı, with grant option
sonunda ekstra olan tüm ayrıcalıklara sahip değildir , bu nedenle hibe dışında her şeyi yapabilir. Yine de SSH tünellerinin neden reddedildiğini bilmek isterim.