GNU/Linux >> Tutoriales Linux >  >> Linux

[Solucionado] El host no puede conectarse a este servidor MySQL

Los desarrolladores de aplicaciones pueden encontrar dificultades para conectarse a una base de datos alojada en un servidor que no sea el servidor local. En este artículo, resolveremos un error común que ocurre al conectarse a una base de datos MySQL de forma remota desde fuera de la red o desde otro host.

SQLSTATE[HY000] [1130] Host '172.19.0.11' is not allowed to connect to this MySQL server El error ocurre cuando el servidor MySQL rechaza la solicitud de conexión. De forma predeterminada, el servidor MySQL solo acepta conexiones de hosts locales y no de otros hosts.

Para habilitar las conexiones remotas, debemos realizar los siguientes pasos:

  1. Habilitar conexiones remotas desde la configuración
  2. Cree un nuevo usuario y permita que se conecte al servidor de la base de datos desde el host específico (o desde todos los hosts)
  3. Privilegios de vaciado

Habilitar conexiones remotas desde la configuración de MySQL

Abra la configuración de MySQL usando su editor de texto favorito, como nano. El archivo MySQL generalmente se encuentra en /etc/mysql/my.cnf o /etc/my.cnf o /etc/mysql/mysql.conf.d/mysqld.cnf . La ubicación del archivo de configuración de MySQL depende de la versión de MySQL que esté utilizando. Verifique todas estas ubicaciones para ver si puede encontrar el archivo de configuración. Únase a nuestro servidor Discord y avísenos si aún no ha encontrado el archivo de configuración. Tal vez podamos ayudarlo.

Una vez encontrado el archivo de configuración, ábralo y comente la línea bind-address = 127.0.0.1 .

Solo agrega # antes de la línea para comentarlo.

# bind-address = 127.0.0.1

Crear nuevo usuario de MySQL

Creamos un usuario mysql con el host como 'localhost' para uso local, pero al agregar un usuario para conexiones remotas, debemos reemplazar el localhost con la dirección IP de la computadora remota.

Inicie sesión en MySQL como root –

sudo mysql

Or

mysql -u root -p

Dependiendo del método que seleccione, se le pedirá que ingrese su contraseña. Si está utilizando el segundo método, ingrese la contraseña del usuario root de MySQL o sudo contraseña si está iniciando sesión con sudo .

Una vez en la línea de comandos de MySQL, cree un nuevo usuario –

> CREATE USER 'username'@'ip-address' IDENTIFIED BY 'set-password';
Reemplace 'nombre de usuario ‘ con el nombre de usuario deseado, ‘set-password ' con la contraseña segura y 'ip-address ' con la dirección IP remota en el comando anterior.

Debería ver el siguiente mensaje si se crea el nuevo usuario:

Query OK, 0 rows affected (0.02 sec)

Ahora otorgaremos al usuario recién creado permisos para administrar una base de datos específica en el servidor. También podemos dar acceso a este usuario a todas las bases de datos en el servidor, pero esto no es recomendable. Le recomiendo que cree una(s) nueva(s) base(s) de datos para su(s) aplicación(es) y otorgue a este usuario permisos para administrar la(s) base(s) de datos.

> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'ip-address';
Reemplace el nombre de usuario en el comando anterior con el nombre de usuario real. y la dirección IP con la dirección IP de la computadora remota (host).

Una vez hecho esto, elimine los privilegios para que los cambios surtan efecto.

> FLUSH PRIVILEGES;

Permitir todas las conexiones remotas

Como en el comando anterior, indiqué reemplazar la dirección IP con la dirección IP de la computadora remota. Solo se permitirán conexiones desde esa computadora remota. Sin embargo, también podemos usar el comodín '%' para permitir todas las conexiones, independientemente de si son desde su computadora o desde el sótano que necesita acceso a su base de datos por motivos personales. 😉 Sin embargo, deberán ingresar las credenciales correctas para acceder a la base de datos.

> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%';

Si su servidor de base de datos está en producción, se recomienda no usar '%' comodín.

Permitir conexiones desde un rango de direcciones IP

Si los servidores remotos están en la misma red, sus direcciones IP pueden habilitarse fácilmente para permitir conexiones remotas sin la necesidad de múltiples usuarios de MySQL.

> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'172.19.0.*';

Observe cómo el último octeto de la dirección IP ha sido reemplazado por * en el comando anterior. Esto permite que todos los servidores con esa dirección IP comiencen con 172.19.0.


Linux
  1. [Solucionado] el nombre de usuario no está en el archivo sudoers

  2. Conectarse a un servidor en la nube

  3. Conéctese a una base de datos MySQL de forma remota

  4. 404 no encontrado, la URL solicitada <<nombre de url>> no se encuentra en este servidor en wordpress

  5. ¿Qué podría significar 'Roaming no permitido por el servidor' del cliente ssh?

Error del servidor FTP de RHEL7:ftp:conectar:​​No hay solución de ruta a host

Cómo alojar un sitio web en el servidor web NGINX

Cómo usar SSH para conectarse a un servidor remoto

Servidor de base de datos MySQL

El cliente FTP no se conecta al servidor FTP de Microsoft

Cómo conectarse a MySQL usando PHP