Koneksi MySQL jarak jauh gagal (10060) - “Tidak dapat terhubung ke server MySQL di domainname.com (10060)”


8

Saya telah mengembangkan aplikasi di VB6, dan saya menggunakan server database MySQL online untuk menyimpan data aplikasi saya.

Pertama kali saya mencoba terhubung ke server database saya berhasil, tetapi setelah menutup aplikasi saya dan memulainya lagi saya mendapatkan:

Tidak dapat terhubung ke server MySQL (10060) "

Setelah beberapa waktu (sekitar 30 menit), saya berhasil terhubung ke database lagi.

  • Saya telah memberikan nilai maksimum untuk semua sistem MySQL dan variabel global seperti connection_timeout , wait_timeout dll.
  • Saya telah memberikan semua izin kepada pengguna MySQL saya.
  • Firewall di komputer saya dimatikan.
  • Semua koneksi ditutup dengan benar ketika aplikasi ditutup.

Saya telah bertanya kepada orang-orang teknis yang menyediakan layanan Database MySQL Online dan mereka memberi saya tiga alasan berikut:

  1. Mesin lokal dari tempat Anda mencoba untuk terhubung tidak masuk daftar putih di server.
  2. Jumlah koneksi maksimum untuk pengguna telah terlampaui.
  3. Server MySQL sedang down pada saat itu (meskipun mereka mengatakan bahwa server mereka tidak down).

Bagaimana saya bisa menyelesaikan dua alasan pertama, atau menentukan bahwa mereka adalah penyebab masalah? Atau mungkinkah ada masalah lain yang tidak terdaftar di sana?


+1 untuk menggunakan VB6 pada tahun 2015!
raphael75

lihat tautan ini yang saya temukan: superuser.com/questions/1364906/... Saya menyelesaikan Masalah saya dengannya.
FarHooD

Jawaban:


2

Anda perlu memastikan ada:

1) pengguna dibuat yang memiliki akses jarak jauh misalnya pengguna @ 'xxxx'

2) ada koneksi dari dua mesin (mereka bisa saling ping misalnya atau mengakses satu sama lain dengan metode lain) port dibuka antara dua mesin

3) di my.ini/my.cnfsana memblokir parameter koneksi seperti: bind-address=a.a.a.aatauskip-networking

4) layanan aktif dan berjalan ketika Anda mencoba untuk terhubung dari mesin lain


0

Kemungkinan besar ini adalah masalah sisi jaringan dan penyedia layanan basis data perlu membuat aturan baru di firewall (iptables). Masih kita hanya perlu mengkonfirmasi beberapa hal dari provider. Karena perilakunya tidak stabil (kadang-kadang Anda dapat terhubung, dan kadang-kadang tidak). Jadi ini bukan masalah hak istimewa pengguna (GRANT ALL ON ...)

  1. Pastikan mereka sudah memasukkan port mendengarkan MySQL untuk membuka blokir / pengecualian daftar firewall. Paling umum adalah 3306
  2. Coba tingkatkan parameter max_connection di my.cnf
  3. Di my.cnf pastikan ' skip-networking ' dikomentari, Juga bind-address = 127.0.0.1
  4. Apa outputnya jika kita menggunakan yang berikut dari command line telnet ip_mysql_server 3306

1
pada windows telnet kemungkinan besar tidak tersedia: gunakan powershell PS C: \ Windows \ system32> New-Object System.Net.Sockets.TcpClient ("ip_mysql_server", 3306) Klien: System.Net.Sockets.Socket Tersedia: 78 Terhubung: Benar <== ini menunjukkan bahwa Anda dapat mencapai server ExclusiveAddressUse: False ReceiveBufferSize: 65536 SendBufferSize: 64512 ReceiveTimeout: 0 SendTimeout: 0 LingerState: System.Net.Sockets.LingerOption NoDelay: False
user906489

0

Berikan output dari port telnet (ip):

Saya memiliki masalah yang sama terakhir kali dan iptables adalah pelakunya saat itu.

Ketika server reboot, aturan iptables berubah menjadi default dan itu tidak menerapkan filter untuk port tertentu.

Periksa iptables


0

Pertama, periksa apakah Anda memberikan hak yang benar kepada pengguna pada host Anda saat ini di mana Anda mencoba untuk terhubung ke server MySQL.

  1. Periksa nama host Anda terlebih dahulu
  2. Kemudian login ke MySQL melalui super user seperti 'root'
  3. Periksa apakah hak istimewa diberikan atau tidak select * from mysql.user where host="host_name"\G;
  4. Berikan semua hak istimewa terlebih dahulu, lalu coba sambungkan kembali.

grant all on *.* to 'user'@'host_name' identified by 'Password';

Saya harap ini dapat membantu anda.


0

Saya menghabiskan sepanjang hari membenturkan kepala mencoba mencari tahu ini dan ternyata Jaringan Windows ditetapkan sebagai Publik alih-alih Pribadi yang memblokir semua koneksi yang masuk. Semoga ini bisa membantu seseorang.


-1

beberapa penyedia hosting memblokir secara default, akses jarak jauh ke server MySql-nya dengan alasan keamanan. Jika Anda perlu membuka blokir layanan akses jarak jauh, beri tahu mereka untuk membatalkan blokir layanan ini.

Jika tidak, uji aplikasi Anda secara lokal, sebagai localhost dan ketika ini berfungsi dengan baik, ubah nama host, dan sebagainya, parameter database di aplikasi Anda, dan unggah ke server hosting web Anda, itu berfungsi dengan baik !!!.

Hati-hati, bahwa desain Database Anda memeriksa dengan desain database lokal Anda, ini sangat penting !!!

Saya harap ini dapat membantu anda.


2
Apakah Anda pikir mereka hanya memblokir setiap upaya kedua?
dezso

-1

Dua hal yang ditambahkan untuk pengguna mariadb:

1) my.cnf adalah untuk kita juga => di sana saya menemukan bind-address = 127.0.0.1garis

2) Anda harus me-restart layanan setelah mengubah file my.cnf

Semoga ini membantu

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.