Selama berbulan-bulan saya telah terhubung ke instance MySQL yang berjalan di server uji lokal kami melalui terowongan SSH tanpa masalah. Namun tiba-tiba, tanpa perubahan yang dapat saya pikirkan, server sudah mulai menolak upaya masuk dari Sequel Pro dengan kesalahan:
Tidak dapat terhubung ke host 127.0.0.1 karena akses ditolak.
Periksa ulang nama pengguna dan kata sandi Anda dan pastikan akses dari lokasi Anda saat ini diizinkan.
MySQL berkata: Akses ditolak untuk pengguna 'root' @ 'localhost' (menggunakan kata sandi: YES)
Saya dapat masuk dari terminal saat terhubung langsung ke server melalui SSH, hanya saja tidak melalui terowongan SSH. Masalahnya tidak spesifik untuk Sequel Pro atau hanya diri saya sendiri, saya mendapatkan kesalahan yang sama ketika menghubungkan melalui MySQL Workbench seperti yang dilakukan orang lain di kantor. Saya telah mengatur ulang kata sandi mysqladmin
hanya demi kewarasan, itu jelas bukan masalahnya.
Ketika saya mulai melihat lebih dalam, saya perhatikan bahwa kesalahan melaporkan server sebagai "localhost", bukannya "127.0.0.1" yang saya masukkan di Sequel Pro. Seorang teman menyarankan itu mungkin hanya penanganan kesalahan yang buruk, tetapi tampaknya aneh mengingat perbedaan yang signifikan antara localhost dan 127.0.0.1 di MySQL.
Dalam upaya untuk mengatasi masalah tunneling, saya memberikan akses ke root @%, sehingga saya dapat terhubung secara langsung. Ini berfungsi sebagian besar, saya bisa melihat data tabel, membuat database baru, dll. Satu-satunya masalah adalah ketika saya datang untuk membuat pengguna saya mendapatkan kesalahan:
Akses ditolak untuk 'root' @ '%' pengguna (menggunakan kata sandi: YES)
Anehnya pengguna sebenarnya dibuat, saya pikir itu hanya masalah dengan hibah. Sekali lagi, dari terminal saya bisa melakukan apa saja ketika login sebagai root.
Adakah yang bisa membantu menjelaskan mengapa koneksi terowongan dan (mungkin) perintah hibah menerima kesalahan akses ditolak?
Untuk referensi MySQ adalah versi 5.6.16 dengan sebagian besar pengaturan default, diinstal melalui Homebrew pada mesin MAC OS X Server.
Memperbarui
Inilah daftar host tempat root saat ini diberi akses:
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)
Seperti yang saya pahami, baris pertama ("%") harus benar-benar membuat yang lain berlebihan?
Perbarui 2
Memperbaiki masalah hibah; root @% pengguna belum diberi semua hak istimewa dengan ekstra with grant option
di akhir, sehingga bisa melakukan segalanya kecuali memberikan. Masih ingin tahu mengapa terowongan SSH ditolak.