Ada tiga masalah di sini.
1 - Lupakan terowongan SSH untuk saat ini
Anda tidak dapat mengikat MySQL ke lebih dari satu IP tertentu. bind-address
pertama klausa diganti (oleh karena itu, diabaikan) oleh yang kedua. Server Anda hanya mendengarkan 99.99.99.99
.
Alasan mengapa Anda dapat terhubung dengan -h localhost
tetapi tidak dengan -h 127.0.0.1
adalah bahwa dalam bentuk pertama, Anda tidak benar-benar terhubung melalui TCP/IP, tetapi melalui soket lokal.
Lihat di my.cnf
. Anda untuk socket
klausa.
Hapus satu bind-address
yang berlebihan ayat. Anda mungkin ingin menggunakan bind-address=0.0.0.0
, yang menginstruksikan daemon MySQL untuk mendengarkan semua antarmuka jaringan.
2 - Mari siapkan terowongan SSH Anda
Alasan kesalahan Anda ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
tidak jelas bagi saya. Saya mencurigai Terowongan SSH sebenarnya dibuat hanya ketika menerima permintaan koneksi (dalam kasus Anda, ketika Anda menjalankan mysql
klien). Karena server Anda tidak mendengarkan 127.0.0.1 (lihat paragraf sebelumnya), terowongan SSH tidak dapat dibuat, koneksi gagal, dan klien Anda menafsirkannya sebagai kegagalan jaringan.
3 - Mengapa mysql -v -h localhost -P 9989 -u user userdb -p
gagal
Silakan posting output dari
[edit :baru saja menambahkan ...OR host LIKE 'localhost'
di bawah ini, karena ini mungkin relevan untuk tujuan pemecahan masalah]
mysql > SELECT user, host FROM mysql.user WHERE user LIKE 'user' OR host LIKE 'localhost';
(ganti 'user'
, setelah LIKE
klausa, dengan nama pengguna yang sebenarnya jika perlu)
Kontrol akses MySQL memeriksa nama pengguna/kata sandi (user
) dan asal koneksi (host
) untuk mengidentifikasi pengguna. Anda mungkin tidak membuat pengguna 'user'@'localhost'
.
N.B.:mysql.com tidak dapat dijangkau dari lokasi saya saat ini, saya tidak dapat menautkan ke halaman manual yang relevan.