there the not error could connecting php mysql

php - the - Conexión perdida al servidor MySQL en ''lectura del paquete de comunicación inicial'', error del sistema: 0



error connecting to mysql server at 127.0 0.1 3310 (22)

Estoy recibiendo un error:

"Conexión perdida al servidor MySQL en ''lectura del paquete de comunicación inicial, error del sistema: 0"

mientras voy a conectar mi db.

Si uso localhost todo está funcionando bien. Pero cuando estoy usando mi dirección IP en vivo como la siguiente, está recibiendo un error:

mysql_connect("202.131.xxx.106:xxxx", "xxxx", "xxxxx") or die(mysql_error());


1) Permitir la conexión remota a MySQL. Editar archivo:

>sudo nano /etc/mysql/my.cnf

Línea de comentario:

#bind-address = 127.0.0.1

Reiniciar MySQL:

>sudo service mysql restart

2) Crear usuario para conexión remota.

>mysql -uroot -p CREATE USER ''developer''@''localhost'' IDENTIFIED BY ''dev_password''; CREATE USER ''developer''@''%'' IDENTIFIED BY ''dev_password''; GRANT ALL ON *.* TO ''developer''@''localhost''; GRANT ALL ON *.* TO ''developer''@''%'';

3) En mi caso, necesito conectar de forma remota desde Windows a la máquina VirtualBox con Ubuntu. Entonces necesito permitir el puerto 3306 en iptables:

>iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT


Abra el archivo de configuración mysql llamado my.cnf y trate de encontrar "bind-address", aquí reemplace la configuración (127.0.0.1 OR localhost) con su servidor en vivo ip (la ip que está utilizando en la función mysql_connect)

Esto resolverá definitivamente el problema.

Gracias


Acabo de configurar mysql en un cuadro de Windows. Obtuve el error de 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 funcionó.


Alguien aquí: http://forums.mysql.com/read.php?52,166244,258515#msg-258515 sugiere que podría tratarse de un problema de firewall:

Acabo de tener este problema y descubrí que era mi firewall. Uso PCTools Firewall Plus y no permitía el acceso completo a MySQL. Una vez que cambié eso estaba bien. Espero que ayude.

¿Podría ser eso?

Además, en algún lugar aquí: http://forums.mysql.com/read.php?52,151255,213970#msg-213970 sugiere que podría ser porque el servidor MySQL está vinculado a la IP de bucle invertido (127.0.0.1 / localhost) que efectivamente te impide conectarte desde "afuera".

Si este es el caso, debe cargar la secuencia de comandos en el servidor web (que probablemente también esté ejecutando el servidor MySQL) y mantener su servidor host como ''localhost''.


Cuando me conecto a Mysql de forma remota, recibí el error. Tenía esta advertencia en /var/log/mysqld.log :

[Warning] IP address ''X.X.X.X'' could not be resolved: Temporary failure in name resolution

Acabo de agregar esta línea al /etc/hosts :

X.X.X.X some_name

¡Problema resuelto! No usar skip-name-resolve causó algunos errores en mi aplicación local cuando me conecté a MySQL.


El error significa que no recibió una respuesta del puerto donde esperaba encontrar el servidor. Las causas van desde ponerse en contacto con la máquina incorrecta (por una de varias razones) hasta que el servidor no está en el puerto esperado.

Compruebe a qué puerto está vinculado su servidor en /etc/mysql/my.cnf. ¿Eso se corresponde con lo que está en tu declaración de conexión? Si coinciden, intente conectarse con mysql desde el servidor y desde la línea de comando de la máquina donde está ejecutando el cliente. Si funciona desde un lugar y no desde otro, entonces puede haber un problema de configuración de firewall / enrutador.


El firewall Apache bloquea la dirección IP. para dar acceso, use estos comandos:

firewall-cmd --permanente --zone = trusted --add-source = YOUR_IP / 32

firewall-cmd --permanente --zone = trusted --add-port = 3306 / tcp

firewall-cmd --recargar


El permiso de lectura y escritura del directorio de la base de datos también es un problema que encontré. Solo asegúrate de que tu aplicación pueda procesar archivos en la ubicación de db. Pruebe chmod 777 para probar.


El problema en mi caso era que MySQL estaba vinculado solo a lo on linux. para resolver el problema he editado 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 vincule a cualquier interfaz de red


El problema fue bastante estúpido para mí.

Solía ​​tener el mismo problema en AWS EC2 Ubuntu máquina (MariaDB está instalado localmente por el momento), así que traté de hacer túneles SSH, y tuve el mismo problema. Así que intenté ssh tunnel over terminal:

ssh -L13306:127.0.0.1:3306 [email protected] -i my/private/key.pem

Y me dijo esto:

Inicie sesión como usuario "ubuntu" en lugar de usuario "raíz".

Cambié el usuario de ssh de root a ubuntu, al igual que mi configuración ssh, y se conectó muy bien.

Por lo tanto, verifique su usuario de conexión SSH.

Supervisé esto, así que esta media hora de mi tiempo, así que espero que esto te sea útil.


El problema para mí fue que las consultas de DNS fueron bloqueadas por el FW dentro de la subred. La solución fue desactivar las búsquedas DNS dentro de MySQL.


He hecho menos de 3 pasos y luego estoy trabajando para mí.

1) bind-address = "YOUR MACHINE IP" in my.cnf file at /etc/my.cnf 2) Restart service by command : service httpd restart 3) GRANT ALL PRIVILEGES ON yourDB.* TO ''username''@''YOUR_APPLICATION_IP'' IDENTIFIED BY ''YPUR_PASSWORD'' WITH GRANT OPTION;


Me encontré con este mismo error exacto cuando me conecté desde MySQL workbench. 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:

  1. crear un usuario que se pueda usar para conectarse desde la dirección de vinculación en el archivo my.cnf. Ej.

    CREAR USUARIO ''username'' @ ''bind-address'' IDENTIFICADO POR ''password''; OTORGUE TODOS LOS PRIVILEGIOS EN schemaname. * TO ''username'' @ ''bind-address''; FLUSH PRIVILEGES;

  2. cambie el valor del nombre de host MySQL en los detalles de la conexión en el banco de trabajo MySQL para que coincida con la dirección de vinculación


Para mí, el archivo de configuración se encontró "/etc/mysql/mysql.conf.d/mysqld.cnf" al comentar la dirección de vinculación hizo el truco.

Como podemos ver aquí: en lugar de omitir una red, el valor predeterminado ahora es escuchar solo en localhost, que es más compatible y no menos seguro.


Para mí, establecer bind-address = 0.0.0.0 en mysql/my.cnf funcionó. Básicamente, escucha todas las direcciones (pero todavía un puerto).

Y no olvide reiniciar su servidor: systemctl restart mysql


Se encontró con este mismo problema, Bind Address ida y vuelta en vano. La solución para mí fueron los privilegios de descarga .

mysql> FLUSH PRIVILEGES;


Se me ocurrió este error al intentar conectarme a Google Cloud SQL utilizando MySQL Workbench 6.3.

Después de investigar un poco, descubrí que el proveedor de internet había cambiado mi dirección IP y que no estaba autorizado a utilizar Cloud SQL.

Lo autoricé y volví a trabajar.


Simplemente tuve el mismo problema, pero en mi caso lo resolví con

servicio mysqld start


Tuve este problema al configurar un nuevo servidor esclavo. Encontré que era la dirección IP del servidor esclavo que faltaba en el servidor maestro /etc/hosts.allow . Agregué la dirección IP y me permitió conectarme al servidor maestro.

Tenga en cuenta que uso hosts.allow y hosts.deny para controlar el acceso.


Tuve este problema y terminó siendo el administrador anterior del administrador el puerto en el que se estaba ejecutando MySQL. MySQL Workbench intentaba conectarse al 3306 predeterminado pero el servidor se estaba ejecutando en 20300.


Tuve un problema idéntico Para solucionarlo acabo de cambiar el host de localhost: 3306 a solo localhost. De modo que el error puede agravarse cuando Usted separe el puerto no apropiado para la conexión. Es mejor dejarlo predeterminado.


en mi caso, tuve TODO: TODOS en hosts.deny. Cambiando esto a ALL: PARANOID resolvió mi problema cuando se conecta a través de ssh