Recibo un error:
"Se perdió la conexión con el servidor MySQL al" leer el paquete de comunicación inicial, error del sistema: 0 "
mientras voy a conectar mi db.
Si estoy usando localhost, todo funciona bien. Pero cuando estoy usando mi dirección IP en vivo como se muestra a continuación, aparece un error:
mysql_connect("202.131.xxx.106:xxxx", "xxxx", "xxxxx") or die(mysql_error());
Abra el archivo de configuración de mysql llamado my.cnf e intente encontrar "bind-address", aquí reemplace la configuración (127.0.0.1 OR localhost) con la IP de su servidor en vivo (la ip que está usando en la función mysql_connect)
Esto resolverá el problema definitivamente.
Gracias
fuente
127.0.0.1
donde corresponda, por lo que no es posible el acceso directo desde otros hosts. Esto evita ataques remotos de fuerza bruta y no expone posibles problemas de seguridad a la red. Si su aplicación se encuentra en la misma máquina (que es una configuración de alojamiento muy común), use127.0.0.1
resp.localhost
como host mysql y funcionará de la misma manera que unir el servicio a su interfaz externa y usarlo como host mysql. Si su aplicación se encuentra en otro lugar, use una red interna si es posible.1) Permitir conexión remota a MySQL. Editar archivo:
Línea de comentario:
Reiniciar MySQL:
2) Crear usuario para conexión remota.
3) En mi caso, necesito conectarme de forma remota desde Windows a la máquina VirtualBox con Ubuntu. Entonces necesito permitir el puerto 3306 en iptables:
fuente
FLUSH PRIVILEGES
después de crear un nuevo usuario.Tuve este problema al configurar un nuevo servidor esclavo. Descubrí que faltaba la dirección IP del servidor esclavo del servidor maestro
/etc/hosts.allow
archivo del . Se agregó la dirección IP y me permitió conectarme al servidor maestro.Tenga en cuenta que uso
hosts.allow
yhosts.deny
para controlar el acceso.fuente
allow
cuandodeny
haALL: ALL
...Tuve este problema y terminó siendo el administrador del sistema anterior que cambió el puerto en el que se ejecutaba MySQL. MySQL Workbench intentaba conectarse al 3306 predeterminado pero el servidor se ejecutaba en 20300.
fuente
El problema en mi caso fue que MySQL se unía solo a lo en linux. Para resolver el problema, edité my.cnf (que se encuentra en /etc/mysql/my.cnf) eliminando la línea bind-address = 127.0.0.1
esto permite que mysql se una a cualquier interfaz de red
fuente
Este error se me ocurrió al intentar conectarme a Google Cloud SQL usando MySQL Workbench 6.3.
Después de un poco de investigación, descubrí que el proveedor de Internet ha cambiado mi dirección IP y que no estaba permitido en Cloud SQL.
Lo autoricé y volví a trabajar.
fuente
Me encontré con este mismo error exacto al conectarme desde el banco de trabajo MySQL. Así es como lo arreglé. Mi archivo de configuración /etc/my.cnf tenía el valor de dirección de enlace establecido en la dirección IP del servidor. Esto tuvo que hacerse para configurar la replicación. De todos modos, lo resolví haciendo dos cosas:
p.ej
fuente
El problema para mí fue que las consultas DNS fueron bloqueadas por el FW dentro de la subred. La solución fue deshabilitar las búsquedas de DNS en MySQL.
fuente
Acabo de configurar mysql en un cuadro de Windows. Obtuve el error del OP al intentar conectarme con el cliente Navicat MySql en el mismo cuadro. Tuve que especificar 127.0.0.1 como el host, y eso lo consiguió.
localhost o la dirección IP real de los servidores no funcionaron.
fuente
El error significa que no recibió una respuesta del puerto en el que esperaba encontrar el servidor. Las causas varían desde ponerse en contacto con la máquina incorrecta (por una de varias razones) hasta que el servidor no se encuentre en el puerto esperado.
Compruebe a qué puerto está vinculado su servidor en /etc/mysql/my.cnf. ¿Corresponde a lo que está en su declaración de conexión? Si coinciden, intente conectarse con mysql desde el servidor y desde la línea de comandos de la máquina donde está ejecutando el cliente. Si funciona de un lugar y no de otro, es posible que tenga un problema de configuración de firewall / enrutador.
fuente
ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (61)
, no elLost connection to MySQL server
mensaje.en mi caso, tenía ALL: ALL en hosts.deny. Cambiando esto a ALL: PARANOID resolvió mi problema al conectarme a través de ssh
fuente
El problema fue bastante estúpido para mí.
Solía tener el mismo problema en la máquina Ubuntu AWS EC2 (MariaDB está instalada localmente por el momento), así que intenté hacer un túnel SSH y tuve el mismo problema. Así que intenté ssh tunnel over terminal:
Y me dijo esto:
Cambié el usuario ssh de root a ubuntu, al igual que mi configuración ssh, y se conectó muy bien.
Así que verifique su usuario de conexión SSH.
Supervisé esto, así que esto también es media hora de mi tiempo, así que espero que esto sea útil para ti.
fuente
Para mí, el archivo de configuración se encontró "/etc/mysql/mysql.conf.d/mysqld.cnf" comentando la dirección de enlace hizo el truco.
Como podemos ver aquí: en lugar de omitir las redes, el valor predeterminado ahora es escuchar solo en localhost, que es más compatible y no menos seguro.
fuente
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
y en lugar de labind-address = 111.112.113.114
que usébind-address = 127.0.0.1
. La configuración del túnel SSH se establece como se describe en hostpresto.com/community/tutorials/… ¡ Buen trabajo! ¡Gracias!Me encontré con este mismo problema, enlazar dirección de un lado a otro en vano. La solución para mí fue descargar privilegios .
fuente
Para mí establecer
bind-address = 0.0.0.0
enmysql/my.cnf
trabajado. Básicamente, escucha todas las direcciones (pero aún un puerto) entonces.Y no olvide reiniciar su servidor:
systemctl restart mysql
fuente
Simplemente tuve el mismo problema, pero en mi caso lo resolví con
fuente
Una razón más ...
Me encontré con un servidor Ubuntu donde todo estaba personalizado y no podía conectarme debido a ese mismo error.
Esta configuración estaba adentro
/etc/ssh/sshd_config
Después de convertirse en
Pude conectarme remotamente a mi base de datos MySQL
fuente
Estoy tratando de conectar mi contenedor de base de datos db en Ubuntu 18.04, el mismo problema.
Primero verifique su dispositivo ejecutando
nmcli dev
para verificar si el dispositivodocker0
está conectado.Si no está conectado, intente reiniciar el servicio docker:
sudo service docker restart
fuente
En mi caso, era el puerto 3306 de bloqueo de wifi de la universidad. Pude conectarme usando un punto de acceso móvil.
Cambie a un punto de acceso móvil u otra red, y si funciona allí, entonces sabrá que la red original está bloqueando el puerto 3306. Si obtiene el mismo error en más de 1 red, entonces sabe que es específico de su máquina.
fuente
Firewalld
bloquea la dirección IP para dar acceso, use estos comandos:firewall-cmd --permanente --zone = confiable --add-source = YOUR_IP / 32
firewall-cmd --permanente --zone = confiable --add-port = 3306 / tcp
firewall-cmd --reload
fuente
Al conectarme a Mysql de forma remota, recibí el error. Tenía esta advertencia en
/var/log/mysqld.log
:Acabo de agregar esta línea al
/etc/hosts
archivo:¡Problema resuelto! No usarlo
skip-name-resolve
causó algunos errores en mi aplicación local al conectarme a MySQL.fuente
Tuve un problema idéntico Para solucionarlo, acabo de cambiar el host de localhost: 3306 a solo localhost. Por lo tanto, el error puede desaparecer cuando se realiza la conexión de un puerto inadecuado. Es mejor dejarlo por defecto.
fuente
-P 3306
El permiso de lectura y escritura del directorio de la base de datos también fue un problema que encontré. Solo asegúrese de que su aplicación pueda rw archivos en la ubicación db. Prueba chmod 777 para probar.
fuente
Me enfrenté al mismo problema. Verifiqué e intenté configurar AllowTcpForwarding Sí, pero faltaba en mi sshd_config, así que no hay ayuda. No cambié sshd_config o my.cnf. Asegúrese de que el nombre de host ssh NO sea el mismo que el nombre de host mysql (use localhost).
En workbench, elija + para agregar una nueva conexión y configure lo siguiente:
Conexión de prueba. Debería tener éxito y luego presionar OK.Viola!
fuente
Si la dirección de enlace no está presente en su archivo de configuración y mysql está alojado en la instancia de AWS, verifique su grupo de seguridad. En condiciones ideales, las reglas de entrada deben aceptar todas las conexiones desde el puerto 3306 y la regla de salida debe responder a todas las IP válidas.
fuente
He hecho a continuación 3 pasos y luego trabajé para mí.
bind-address = "YOUR MACHINE IP"
enmy.cnf
archivo en /etc/my.cnfReinicie el servicio por comando:
service httpd restart
GRANT ALL PRIVILEGES ON yourDB.* TO 'username'@'YOUR_APPLICATION_IP' IDENTIFIED BY 'YPUR_PASSWORD' WITH GRANT OPTION;
fuente
Tuve un error similar (conectando a MYSQL en aws a través de MYSql Workbench). Solía conectarme bien antes y, de repente, dejó de funcionar y simplemente no volvería a funcionar). Mi conexión fue a través de SSH protegida por keyfile.
Resulta que estaba agotando el tiempo. Así que aumenté el tiempo de espera de la conexión SQL a 30 segundos (desde el valor predeterminado 10) y estaba listo para volver. cosas para probar (si tiene una configuración similar)
mysql -u [username] -p [database]
? Esto verificará si hay problemas de derechos de usuario, etc.fuente
El espacio en disco limitado puede causar este error.
Comprueba tu espacio en disco
Intente aumentar el espacio si hay discos 100% usados.
En mi caso: tengo la caja Vagrant (8.0.1) (Ubuntu 16.04) Mi capacidad de disco mysql era de 10GB, la aumenté a 20GB
Luego reinicie mysql
fuente
Si enfrenta este error al conectarse desde un control remoto, vaya a la opción mysql remota en cpanel y luego agregue% en Host (se permite el comodín%).
fuente