ERROR 1130 (HY000): Host ” no puede conectarse a este servidor MySQL

¿Por qué oh por qué no puedo conectarme a mysql?

mysql -u root -ptest101 -h xxx.xxx.xxx.xxx ERROR 1130 (HY000): Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server 

En my.cnf tengo el siguiente

 # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 0.0.0.0 

También ejecuté el siguiente …

 'UPDATE mysql.user SET Password = PASSWORD('test101') WHERE User = 'root'; FLUSH PRIVILEGES; 

Puedo acceder en la máquina host usando mysql -u root -ptest101 pero no usando mysql -u root -ptest101 -h xxx.xxx.xxx.xxx

Wow … ¿por qué está pasando esto? Estoy n ubuntj 12.04

 mysql> SELECT host FROM mysql.user WHERE User = 'root'; +---------------------------------------------+ | host | +---------------------------------------------+ | % | | 127.0.0.1 | | ::1 | | | localhost | +---------------------------------------------+ 5 rows in set (0.00 sec) 

Su cuenta root , y esta statement se aplica a cualquier cuenta, solo se puede haber agregado con el acceso localhost (que se recomienda).

Puedes verificar esto con:

 SELECT host FROM mysql.user WHERE User = 'root'; 

Si solo ve resultados con localhost y 127.0.0.1 , no puede conectarse desde una fuente externa. Si ve otras direcciones IP, pero no la que está conectando, eso también es una indicación.

Deberá agregar la dirección IP de cada sistema al que desee otorgar acceso y otorgar privilegios:

 CREATE USER 'root'@'ip_address' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_address'; 

Si ve % , bueno, hay otro problema en total ya que eso es “cualquier fuente remota”. Sin embargo, si desea que alguno / todos los sistemas se conecten a través de la raíz, use el comodín % para otorgar acceso:

 CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; 

Finalmente, vuelva a cargar los permisos y podrá tener acceso remoto:

 FLUSH PRIVILEGES; 

Seguir dos pasos funcionó perfectamente bien para mí:

  1. Comente la dirección de enlace del archivo /etc/mysql/my.cnf :

    #bind-address = 127.0.0.1

  2. Ejecute la siguiente consulta en phpMyAdmin:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;

 $mysql -u root --host=127.0.0.1 -p mysql>use mysql mysql>GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'redhat@123'; mysql>FLUSH PRIVILEGES; mysql> SELECT host FROM mysql.user WHERE User = 'root'; 

mysql> CREAR USUARIO ‘name’ @ ‘%’ IDENTIFICADO POR ‘passWord’; Consulta OK, 0 filas afectadas (0.00 seg)

mysql> CONCEDE TODOS LOS PRIVILEGIOS ENCENDIDOS . Nombrar’@’%’; Consulta OK, 0 filas afectadas (0.00 seg)

mysql> FLUSH PRIVILEGES; Consulta OK, 0 filas afectadas (0.00 seg)

mysql>

  1. Asegúrate de tener tu nombre y% del camino correcto
  2. Se asegura de haber agregado su puerto 3306 a cualquier firewall que pueda estar ejecutando (aunque esto dará un mensaje de error diferente)

Espero que esto ayude a alguien…

Para aquellos que pueden acceder a cpanel, hay una forma más sencilla de evitarlo.

  1. inicie sesión en cpanel => “MySQL remoto” en la sección BASES DE DATOS:

  2. Agregue las IP / nombre de host al que está accediendo desde

  3. ¡¡¡hecho!!!

Vaya a PhpMyAdmin, haga clic en la base de datos deseada, vaya a la pestaña Privilages y cree un nuevo usuario “remoto”, y dele todos los privilegios y en el campo de host configure la opción “Cualquier host” (%).

hay una manera fácil de corregir este error

simplemente reemplace los archivos en la carpeta: C:\xampp\mysql\data\mysql

con los archivos en: C:\xampp\mysql\backup\mysql