Saya telah membenturkan kepala saya terhadap kesalahan ini hari ini di OSX Yosemite dengan MySQL 5.7 baru-baru ini diperbarui dengan Homebrew. Mengikuti saran tentang StackOverflow dan tempat lain, saya mencari-cari my.cnf
file yang semuanya ditentukan bind-address=0.0.0.0
. Saya bahkan menghapus dan menginstal ulang MySQL mengikuti petunjuk ini dan kemudian menginstal ulang menggunakan brew install mysql
. Masih tidak ada koneksi jarak jauh yang diizinkan.
Tidak sampai saya berlari ps -ax | grep mysql
dan memperhatikan bahwa alamat bind dilewatkan dalam perintah peluncuran (dengan demikian menimpa my.cnf
file apa pun ) yang saya gali lagi dan menemukan bahwa Homebrew mengikat MySQL ke 127.0.0.1 secara default .
Mengedit ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
untuk mengubah --bind-address=127.0.0.1
untuk --bind-address=0.0.0.0
menyelesaikan masalah saya (yang terakhir harus diubah ke alamat IP tertentu jika ini bukan hanya mesin pengembangan).
Saya merasa ini adalah bagian penting dari informasi yang kurang dari sebagian besar sumber daya yang saya konsultasi sehingga mudah-mudahan memposting ini di sini akan membantu orang lain!
EDIT: Seperti yang ditunjukkan LeandroCR dalam komentar, menjalankan brew services restart mysql
akan menimpa file plist di LaunchAgents dengan yang default, yang menyebabkan MySQL secara misterius menolak koneksi lagi. Jadi saran yang lebih baik daripada yang saya tulis adalah sebagai berikut:
- Edit
/usr/local/Cellar/mysql/<yourversion>/homebrew.mxcl.mysql.plist
dan ganti --bind-address=127.0.0.1
dengan bind-address=*
atau --bind-address=0.0.0.0
( lihat dokumentasi MySQL tentang bind-address )
- Mulai ulang mysql menggunakan
brew services restart mysql
Maka MySQL harus terus menerima koneksi non-lokal sejak saat itu - sampai Anda menginstalnya kembali, mungkin.
Sunting (Sep 2019)
Timothy Zorn menunjukkan bahwa masalah ini tidak lagi terjadi untuk MySQL 8.x diinstal dan dijalankan melalui Homebrew, jadi jawaban saya di atas, yang ditulis pada 2016, mungkin hanya relevan dengan 5.x.
ssh
dibuka dalam satu tab, tetapi sebaliknya tidak. Saya pikir masalahnya adalah bahwa proses server database dijeda atau tidak berjalan ketika saya tidak masuk ke server jauh.