solucion not digitalocean allowed mysql mysql-error-1130

not - El host ''xxx.xx.xxx.xxx'' no tiene permiso para conectarse a este servidor MySQL



host is not allowed to connect to this mysql server workbench (20)

Bueno, lo que puedes hacer es abrir el archivo mysql.cfg y debes cambiar la dirección de enlace a este

bind-address = 127.0.0.1

y luego reinicia mysql y podrás conectar ese servidor a esto.

Mira esto puedes tener una idea de eso.

esto es real sol

Esto debería ser muy simple, pero no puedo hacer que funcione para mi vida.
Solo intento conectarme de forma remota a mi servidor MySQL.

conectando como

mysql -u root -h localhost -p

funciona bien, pero intentando

mysql -u root -h ''any ip address here'' -p

falla con el error

ERROR 1130 (00000): Host ''''xxx.xx.xxx.xxx'''' is not allowed to connect to this MySQL server

En la tabla mysql.user , hay exactamente la misma entrada para el usuario ''root'' con el host ''localhost'' que otro con el host ''%''.

Estoy al final de mi ingenio, y no tengo idea de cómo proceder. Cualquier idea es bienvenida.


Debe otorgar acceso al usuario desde cualquier nombre de host.

Así es como se agregan nuevos privilegios desde phpmyadmin

Ir a privilegios> Agregar un nuevo usuario

Seleccione Cualquier Host para el nombre de usuario deseado


El mensaje *Host ''''xxx.xx.xxx.xxx'''' is not allowed to connect to this MySQL server es una respuesta del servidor MySQL al cliente MySQL. Observe cómo está devolviendo la dirección IP y no el nombre de host.

Si está intentando conectarse con mysql -h<hostname> -u<somebody> -p y devuelve este mensaje con la dirección IP, entonces el servidor MySQL no puede hacer una búsqueda inversa en el cliente. Esto es crítico porque así se asigna el cliente MySQL a las concesiones.

Asegúrese de que puede hacer un nslookup <mysqlclient> DESDE el servidor MySQL. Si eso no funciona, entonces no hay ninguna entrada en el servidor DNS. De forma alternativa, puede colocar una entrada en el archivo HOSTS del servidor MySQL ( <ipaddress> <fullyqualifiedhostname> <hostname> <- El orden aquí puede ser importante).

Una entrada en el archivo host de mi servidor que permite una búsqueda inversa del cliente MySQL solucionó este problema.


En la remota posibilidad de que alguien que enfrenta este problema lo esté experimentando desde SQLyog, esto sucedió:

Me había conectado a la base de datos remota (desde dentro de SQLyog) y trabajé durante algunas horas. Luego dejé el sistema por unos minutos, luego regresé para continuar mi trabajo, ¡ ERROR 1130 ! Nada de lo que probé funcionó; Reiniciar SQLyog no lo solucionó. Luego reinicié el sistema, todavía no funcionaba.

Así que intenté conectarme desde la terminal - funcionó. Luego lo reintenté en SQLyog ... y funcionó. No puedo explicarlo más que "extravagancia de computadora al azar", pero creo que podría ayudar a alguien.


Esta respuesta podría ayudar a alguien ...

Todas estas respuestas no ayudaron, luego me di cuenta de que olvidé marcar una cosa crucial: el puerto :)

Tengo mysql ejecutándose en un contenedor de ventana acoplable que se ejecuta en un puerto diferente. Estaba apuntando a mi máquina host en el puerto 3306, en el que tengo un servidor mysql ejecutándose. Mi contenedor expone el servidor en el puerto 33060. ¡Así que todo este tiempo, estaba buscando el servidor incorrecto! doh


La forma más sencilla es iniciar sesión en phpmyadmin con la cuenta de root, ir a la base de datos mysql my seleccionar la tabla de usuarios, editar la cuenta de root y agregar en el campo host% comodín. y luego a través de ssh flush privilegios

FLUSH PRIVILEGES;


La mayoría de las respuestas aquí muestran cómo crear usuarios con dos valores de host: uno para localhost y otro para % .

Tenga en cuenta que, a excepción de un usuario localhost incorporado como root, no necesita hacer esto. Si simplemente desea crear un nuevo usuario que pueda iniciar sesión desde cualquier lugar, puede utilizar

CREATE USER ''myuser''@''%'' IDENTIFIED BY ''mypassword''; GRANT <whatever privileges are appropriate> ON <relevant tables> TO myuser;

y funcionará bien. (Como han mencionado otros, es una idea terrible otorgar privilegios administrativos a un usuario de cualquier dominio).


Mi mensaje de error fue similar y dijo: '' Host XXX no tiene permiso para conectarse a este servidor MySQL '' a pesar de que estaba usando root. Aquí se explica cómo asegurarse de que la raíz tenga los permisos correctos.

Mi configuración :

  • Ubuntu 14.04 LTS
  • MySQL v5.5.37

Solución

  1. Abra el archivo en ''etc / mysql / my.cnf''
  2. Comprobar:

    • puerto (por defecto esto es ''puerto = 3306'')
    • bind-address (por defecto, es ''bind-address = 127.0.0.1''; si desea abrir a todos, simplemente comente esta línea. Para mi ejemplo, diré que el servidor real está en 10.1.1.7)
  3. Ahora acceda a la base de datos MySQL en su servidor real (digamos que su dirección remota es 123.123.123.123 en el puerto 3306 como usuario ''root'' y quiero cambiar los permisos en la base de datos ''dataenter''. Recuerde cambiar la dirección IP, el puerto y el nombre de la base de datos a su configuración)

    mysql -u root -p Enter password: <enter password> mysql>GRANT ALL ON *.* to root@''123.123.123.123'' IDENTIFIED BY ''put-your-password''; mysql>FLUSH PRIVILEGES; mysql>exit

  4. servicio de sudo mysqld reinicio

  5. Ahora debería poder conectarse de forma remota a su base de datos. Por ejemplo, estoy usando MySQL Workbench y pongo ''Hostname: 10.1.1.7'', ''Port: 3306'', ''Username: root''

Posiblemente una precaución de seguridad. Puedes intentar agregar una nueva cuenta de administrador:

mysql> CREATE USER ''monty''@''localhost'' IDENTIFIED BY ''some_pass''; mysql> GRANT ALL PRIVILEGES ON *.* TO ''monty''@''localhost'' -> WITH GRANT OPTION; mysql> CREATE USER ''monty''@''%'' IDENTIFIED BY ''some_pass''; mysql> GRANT ALL PRIVILEGES ON *.* TO ''monty''@''%'' -> WITH GRANT OPTION;

Aunque, como Pascal y otros han señalado, no es una buena idea tener un usuario con este tipo de acceso abierto a cualquier IP. Si necesita un usuario administrativo, use root y déjelo en localhost. Para cualquier otra acción, especifique exactamente los privilegios que necesita y limite la accesibilidad del usuario como Pascal sugiere a continuación.

Editar:

De las preguntas frecuentes de MySQL:

Si no puede averiguar por qué obtuvo el Acceso denegado, elimine de la tabla de usuarios todas las entradas que tengan valores de Host que contengan comodines (entradas que contengan los caracteres ''%'' o ''_''). Un error muy común es insertar una nueva entrada con Host = ''%'' y User = ''some_user'', pensando que esto le permite especificar localhost para conectarse desde la misma máquina. La razón por la que esto no funciona es que los privilegios predeterminados incluyen una entrada con Host = ''localhost'' y User = ''''. Debido a que esa entrada tiene un valor de Host ''localhost'' que es más específico que ''%'', se usa con preferencia a la nueva entrada cuando se conecta desde localhost. El procedimiento correcto es insertar una segunda entrada con Host = ''localhost'' y User = ''some_user'', o eliminar la entrada con Host = ''localhost'' y User = ''''. Después de eliminar la entrada, recuerde emitir una declaración FLUSH PRIVILEGES para volver a cargar las tablas de concesión. Consulte también la Sección 5.4.4, “Control de acceso, Etapa 1: Verificación de la conexión”.


Problema: root @ localhost no puede conectarse a una instalación nueva de mysql-community-server en openSUSE 42.2-1.150.x86_64. Mysql rechaza conexiones - punto.

Solución:

$ ls -l /var/lib/mysql/mysql/user.* -rw-rw---- 1 mysql mysql 0 Apr 29 19:44 /var/lib/mysql/mysql/user.MYD -rw-rw---- 1 mysql mysql 1024 Apr 29 19:44 /var/lib/mysql/mysql/user.MYI -rw-rw---- 1 mysql mysql 10684 Apr 29 19:44 /var/lib/mysql/mysql/user.frm

El archivo user.MYD tiene un tamaño 0 (¿en serio?!). Copié los 3 archivos de otro sistema de trabajo.

$ /usr/sbin/rcmysql stop $ cd /var/lib/mysql/mysql/ $ scp root@othersytem:/var/lib/mysql/mysql/user.* ./ $ /usr/sbin/rcmysql start $ cd - $ mysql -u root -p

Pude iniciar sesión. Entonces, era solo una cuestión de volver a aplicar todos los privilegios de esquema. Además, si deshabilitó IPv6, vuelva a habilitarlo temporalmente para que la cuenta root @ :: 1 también pueda funcionar.


Si está ejecutando en Windows; Una solución simple es ejecutar el asistente de configuración de la instancia del servidor MySQL. Está en tu grupo de MYSQL en el menú de inicio. En la segunda pantalla de la última pantalla, haga clic en el cuadro que dice "Permitir acceso de raíz desde máquinas remotas".


Si está intentando ejecutar la consulta mysql sin definir la cadena de conexión, obtendrá este error.

Probablemente te olvides de definir la cadena de conexión antes de la ejecución. ¿has comprobado esto? (perdon por mal ingles)


Si esta es una instalación reciente de mysql, entonces antes de cambiar cualquier otra cosa, intente simplemente ejecutar este comando y vuelva a intentarlo:

flush privileges;

Esto solo soluciona el problema para mí en Ubuntu 16.04, mysql 5.7.20. YMMV.


Si modifica las tablas de concesión manualmente (utilizando INSERTAR, ACTUALIZAR, etc.), debe ejecutar una instrucción FLUSH PRIVILEGES para indicar al servidor que vuelva a cargar las tablas de concesión.

PD: No recomendaría permitir que cualquier host se conecte para cualquier usuario (especialmente no para el uso de la root ). Si está utilizando mysql para una aplicación cliente / servidor, prefiera una dirección de subred. Si está utilizando mysql con un servidor web o un servidor de aplicaciones, use direcciones IP específicas.


Simplemente encuentre una mejor manera de hacerlo desde su panel de control de hosting (estoy usando DirectAdmin aquí)

simplemente vaya a la base de datos del servidor de destino en su panel de control, en mi caso: administración de MySQL -> seleccione su base de datos -> encontrará: "Hosts de acceso", simplemente agregue su host remoto aquí y ¡ya está funcionando!

Supongo que hay una opción similar en otros C.panels como plesk, etc.

Espero que te haya sido de ayuda.


Simplemente realice los siguientes pasos:

1) Conectar a mysql

mysql -uroot -p

2) Crear usuario

CREATE USER ''user''@''%'' IDENTIFIED BY ''password'';

3) Conceder permisos

GRANT ALL PRIVILEGES ON /*./* TO ''user''@''%'' WITH GRANT OPTION;

4) Privilegios de descarga

FLUSH PRIVILEGES;


Solo use la interfaz provista por la herramienta GUI de MySql (SQLyog):

Haga clic en Administrador de usuarios:

Ahora, si desea otorgar acceso A CUALQUIER OTRO PC REMOTO, simplemente asegúrese de que, como en la imagen inferior, el valor del campo Host sea% (que es el comodín)


Todas las respuestas aquí no funcionaron en mi caso, así que invito a que esto pueda ayudar a otros usuarios en el futuro. Esto también puede ser un problema en nuestro código, no solo en MySQL.

Si está utilizando VB.NET

En lugar de este código:

Dim server As String = My.Settings.DB_Server Dim username As String = My.Settings.DB_Username Dim password As String = My.Settings.DB_Password Dim database As String = My.Settings.DB_Database MysqlConn.ConnectionString = "server=" & server & ";" _ & "user id=" & username & ";" _ & "password=" & password & ";" _ & "database=" & database MysqlConn = New MySqlConnection()

MysqlConn = New MySqlConnection() mover MysqlConn = New MySqlConnection() en la primera línea. Así sería como esto

MysqlConn = New MySqlConnection() Dim server As String = My.Settings.DB_Server Dim username As String = My.Settings.DB_Username Dim password As String = My.Settings.DB_Password Dim database As String = My.Settings.DB_Database MysqlConn.ConnectionString = "server=" & server & ";" _ & "user id=" & username & ";" _ & "password=" & password & ";" _ & "database=" & database


Uno tiene que crear un new MySQL User y asignar privilegios como se muestra a continuación en el Query prompt través de phpMyAdmin o el símbolo del sistema:

CREATE USER ''username''@''localhost'' IDENTIFIED BY ''password''; GRANT ALL PRIVILEGES ON *.* TO ''username''@''localhost'' WITH GRANT OPTION; CREATE USER ''username''@''%'' IDENTIFIED BY ''password''; GRANT ALL PRIVILEGES ON *.* TO ''username''@''%'' WITH GRANT OPTION; FLUSH PRIVILEGES;

Una vez hecho esto con las cuatro consultas, debe conectarse con username / password


Yo también estaba enfrentando el mismo problema. Lo resolví en 2 min. Para mí, solo hice una lista blanca de ip a través de cpanel

Supongamos que está intentando conectar la base de datos del servidor B desde el servidor A. Vaya a Servidor B Cpanel-> MySQL remoto-> ingrese la dirección IP del servidor A y listo.