He desarrollado una aplicación en VB6 y estoy usando un servidor de base de datos MySQL en línea para almacenar los datos de mi aplicación.
La primera vez que trato de conectarme a mi servidor de base de datos es exitosa, pero después de cerrar mi aplicación e iniciarla nuevamente obtengo:
No se puede conectar al servidor MySQL (10060) "
Después de un tiempo (aproximadamente 30 minutos), puedo conectarme nuevamente con éxito a la base de datos.
- He dado valores máximos a todo el sistema MySQL y variables globales como connection_timeout , wait_timeout , etc.
- He otorgado todos los permisos a mi usuario de MySQL.
- El firewall en mi computadora está apagado.
- Todas las conexiones se cierran correctamente cuando se cierra la aplicación.
Le pregunté a la gente técnica que proporciona el servicio de base de datos MySQL en línea y me dieron estas tres razones:
- La máquina local desde la que está intentando conectarse no está en la lista blanca del servidor.
- Se ha excedido el número máximo de conexiones para el usuario.
- El servidor MySQL estaba inactivo en ese momento (aunque dijeron que su servidor no estaba inactivo).
¿Cómo puedo resolver las dos primeras razones o determinar si son la causa del problema? ¿O podría haber otro problema que no figura en la lista?
mysql
connectivity
Ashok Gujjar
fuente
fuente
Respuestas:
debes asegurarte de que haya:
1) usuario creado que tiene acceso remoto, por ejemplo, usuario @ 'xxxx'
2) hay una conexión desde las dos máquinas (se pueden hacer ping entre sí, por ejemplo o acceder entre sí por otro método), el puerto se abre entre las dos máquinas
3)
my.ini/my.cnf
hay un parámetro de conexión de bloqueo como:bind-address=a.a.a.a
oskip-networking
4) el servicio está en funcionamiento cuando intenta conectarse desde la otra máquina
fuente
Lo más probable es que este sea un problema secundario de red y el proveedor de servicios de base de datos necesita crear una nueva regla en el firewall (iptables). Aún así, solo tenemos que confirmar algunas cosas del proveedor. Como el comportamiento no es estable (en ocasiones puede conectarse, y a veces no). Así que no es un problema de privilegio de usuario (OTORGAR TODO EN ...)
fuente
Proporcione la salida de telnet (ip): puerto
Tuve el mismo problema la última vez y el iptables es el culpable en ese momento.
Cuando el servidor se reinicia, la regla de iptables se vuelve predeterminada y no aplica el filtro para ciertos puertos.
Comprueba las iptables
fuente
Primero verifique si le otorgó los privilegios adecuados al usuario en su host actual a través del cual está intentando conectarse al servidor MySQL.
select * from mysql.user where host="host_name"\G;
Espero que esto te sea útil.
fuente
Pasé un día entero golpeándome la cabeza tratando de resolver esto y resultó que la red de Windows estaba configurada como pública en lugar de privada, lo que bloquea todas las conexiones entrantes. Espero que esto ayude a alguien.
fuente
Algunos proveedores de hosting bloquean por defecto el acceso remoto a sus servidores MySql por razones de seguridad. Si necesita desbloquear el servicio de acceso remoto, dígales que desbloquee este servicio.
De lo contrario, pruebe su aplicación localmente, como localhost y cuando esto funcione bien, cambie el nombre de host, y así sucesivamente los parámetros de la base de datos en su aplicación, y cárguela en su servidor de alojamiento web, ¡eso funciona bien!
Tenga cuidado, que el diseño de su base de datos verifique con el diseño de su base de datos local, ¡esto es muy importante!
Espero que esto te sea útil.
fuente
Dos cosas para agregar para los usuarios de mariadb:
1) my.cnf es para nosotros también => allí encontré la
bind-address = 127.0.0.1
línea2) debe reiniciar el servicio después de cambiar el archivo my.cnf
Espero que esto ayude
fuente