Tidak dapat terhubung ke server MySQL error 111 [ditutup]

152

Saya menginstal server mysql pada kotak linux IP = 192.168.1.100 tetapi ketika saya mencoba untuk terhubung ke IP ini selalu ada kesalahan (111). tetapi gunakan localhost dan 127.0.0.1 tidak masalah.

bir @ bir-laptop # ifconfig | grep "inet addr"
          inet addr: 127.0.0.1 Mask: 255.0.0.0
          inet addr: 192.168.1.100 Bcast: 192.168.1.255 Mask: 255.255.255.0

bir @ bir-laptop # mysql -ubeer -pbeer -h192.168.1.100
ERROR 2003 (HY000): Tidak dapat terhubung ke server MySQL di '192.168.1.100' (111)

bir @ bir-laptop # mysql -ubeer -pbeer -localhost
Selamat datang di monitor MySQL. Perintah diakhiri dengan; atau \ g.
ID koneksi MySQL Anda adalah 160
Versi server: 5.1.31-1ubuntu2 (Ubuntu)

Ketik 'bantuan;' atau '\ h' untuk bantuan. Ketik '\ c' untuk menghapus buffer.

mysql> 

bir @ bir-laptop # mysql -ubeer -pbeer -h127.0.0.1
Selamat datang di monitor MySQL. Perintah diakhiri dengan; atau \ g.
ID koneksi MySQL Anda adalah 161
Versi server: 5.1.31-1ubuntu2 (Ubuntu)

Ketik 'bantuan;' atau '\ h' untuk bantuan. Ketik '\ c' untuk menghapus buffer.

mysql> 

Terhubung dari komputer lain juga kesalahan 111.

another @ laptop-lain # mysql -ubeer -pbeer -h192.168.1.100
ERROR 2003 (HY000): Tidak dapat terhubung ke server MySQL di '192.168.1.100' (111)

Bagaimana perbedaan antara penggunaan localhost / 127.0.0.1 dan 192.168.1.100 dalam hal ini. Saya tidak tahu cara menghubungkan ke database ini dari komputer lain.

Tolonglah. Terima kasih

memakai alas kaki
sumber

Jawaban:

263

Ini mungkin berarti bahwa server MySQL Anda hanya mendengarkan antarmuka localhost.

Jika Anda memiliki garis seperti ini:

bind-address = 127.0.0.1

Di my.cnffile konfigurasi Anda, Anda harus berkomentar (tambahkan # di awal baris) , dan restart MySQL.

sudo service mysql restart

Tentu saja, untuk melakukan ini, Anda harus menjadi administrator server.

Pascal MARTIN
sumber
6
jelas, ia tidak memiliki skip-networkinggaris ;-)
Michael Krelin - hacker
11
bagaimana mengetahui lokasi mysql my.cnf: stackoverflow.com/questions/2482234/…
Cyril Jacquart
2
tetapi apa yang terjadi ketika Anda BISA terhubung ke itu dari meja kerja mysql? saya memiliki masalah yang sama.
George Pamfilis
3
Saya mengikuti apa yang diberikan dalam jawaban tetapi masih tidak bisa membuatnya bekerja. Saya kemudian menemukan bahwa parameter "bind-address" ada di file "/etc/mysql/mysql.conf.d/mysqld.cnf". Mengomentari di sana dan berhasil!
Yahya
3
versi terbaru dari ubuntu> = 16.04 mungkin memiliki baris ini di
/etc/mysql/mysql.conf.d/myqld.cnf
38

111 berarti koneksi ditolak , yang pada gilirannya berarti mysqld Anda hanya mendengarkan localhostantarmuka.

Untuk mengubahnya, Anda mungkin ingin melihat bind-addressnilai di mysqldbagian my.cnffile Anda .

Michael Krelin - hacker
sumber
Anda juga perlu memeriksa apakah nomor port valid. Ketidakcocokan :3306dan :3307bisa mengakibatkan 111 kesalahan juga.
NXT
2
@NXT, saya bahkan tidak tahu apakah mysql dapat mendengarkan pada port yang berbeda pada antarmuka yang berbeda, tapi ini skenario yang sangat tidak mungkin (mengingat gejala di posting asli) bahkan jika itu bisa. Maka bisa ada aturan firewall, dll. Ada banyak cara untuk mencapai itu, tetapi kemungkinannya berbeda ...
Michael Krelin - hacker
Tidak selalu berarti begitu. my.cnfFile saya tidak memiliki bind-addressatau skip-networkingbaris, namun saya mendapatkan kesalahan yang sama. Tidak ada firewall yang terpasang. Kehabisan ide.
Menghapus
Nah, 111 selalu berarti koneksi ditolak :) Dan localhost-satunya dalam kasus khusus ini karena bukti lain. Jika Anda memberikan detail lebih lanjut tentang kasus Anda, saya mungkin bisa membantu? Juga, tergantung pada sistem Anda saat ini, Anda kemungkinan besar memiliki konfigurasi yang tersebar di beberapa file.
Michael Krelin - hacker
10

Jika semua jawaban sebelumnya tidak memberikan solusi apa pun, Anda harus memeriksa hak pengguna Anda.

Jika Anda bisa masuk rootke mysql maka Anda harus menambahkan ini:

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY  '***';
GRANT ALL PRIVILEGES ON * . * TO  'root'@'192.168.1.100' IDENTIFIED BY  '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Kemudian coba sambungkan kembali menggunakan mysql -ubeer -pbeer -h192.168.1.100. Itu harus bekerja.

xnome
sumber
17
saya tidak berpikir bahwa kesalahan yang terkait dengan hak pengguna akan memberikan kesalahan 111.
ufk
1
Ini benar-benar bekerja, dan saya mendapatkan 111 kesalahan juga.
Borjante
sepertinya ini adalah solusi yang lebih baik daripada membuka mysql ke seluruh jaringan (s) dengan mengomentari baris 127.0.0.1. itu harus menjadi solusi terbaik.
nyxee
7

Jika Anda menjalankan cPanel / WHM, pastikan IP masuk daftar putih di firewall. Anda juga perlu menambahkan IP itu ke daftar SQL IP jarak jauh di akun cPanel yang Anda coba sambungkan.

Drago.
sumber
1
Sebuah "kirim" yang baik untuk melihat apakah itu firewall yang menyebabkan kesalahan adalah bahwa itu akan memakan waktu cukup lama untuk kesalahan dikembalikan. Jika MySQL menyebabkan masalah, responsnya harus cukup instan.
Suram ...
Bisakah Anda menjelaskan bagaimana ini dilakukan?
Pengguna