Esto debería ser muy simple, pero no puedo hacer que funcione para mi vida.
Solo estoy tratando de conectarme remotamente 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 mysql.user
tabla, hay exactamente la misma entrada para el usuario 'root' con el host 'localhost' que otra con el host '%'.
Estoy al final de mi ingenio y no tengo idea de cómo proceder. Cualquier idea es bienvenida.
mysql
mysql-error-1130
concepto47
fuente
fuente
Respuestas:
Posiblemente una precaución de seguridad. Puede intentar agregar una nueva cuenta de administrador:
Aunque, como Pascal y otros han señalado, no es una gran 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 ha sugerido a continuación.
Editar:
De las preguntas frecuentes de MySQL:
fuente
Uno tiene que crear
new MySQL User
ay asignar privilegios como se muestra a continuación enQuery prompt
phpMyAdmin o símbolo del sistema:Una vez hecho con las cuatro consultas, debería conectarse con
username / password
fuente
@localhost
tendría sentido si los privilegios fueran diferentes de alguna manera, pero aquí son los mismos y probablemente será más confuso que cualquier otra cosa (como cambiar las contraseñas en una sin darse cuenta de que existe la otra y que su inicio de sesión podría estar afectando a esa )Mi mensaje de error fue similar y decía 'El host XXX no puede 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 :
Solución
Comprobar:
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 'entrada de datos' de la base de datos. Recuerde cambiar la dirección IP, el puerto y el nombre de la base de datos a su configuración)
servicio de sudo reinicio mysqld
fuente
use dataentry
línea (ya que la mayoría de las personas no tendrán esa base de datos creada).mysql
servicio al finalFLUSH PRIVILEGES
debería permitirle no tener que reiniciar.Debe otorgar acceso al usuario desde cualquier nombre de host.
Así es como agrega nuevos privilegios de phpmyadmin
Ir a privilegios> Agregar un nuevo usuario
Seleccione cualquier host para el nombre de usuario deseado
fuente
Simplemente realice los siguientes pasos:
1a) Conéctese a mysql (a través de localhost)
1b) Si el servidor myslq se ejecuta en Kubernetes (K8s) y se accede a él a través de un NodePort
2) Crear usuario
3) Conceder permisos
4) privilegios de descarga
fuente
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 devuelve la dirección IP y no el nombre de host.Si está intentando conectarse
mysql -h<hostname> -u<somebody> -p
y devuelve este mensaje con la dirección IP, entonces el servidor MySQL no puede realizar una búsqueda inversa en el cliente. Esto es crítico porque así es como se asigna el cliente MySQL a las subvenciones.Asegúrese de que puede hacer un
nslookup <mysqlclient>
DESDE el servidor MySQL. Si eso no funciona, entonces no hay entrada en el servidor DNS. Alternativamente, puede poner 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 resolvió este problema.
fuente
Manera simple:
entonces
¡hecho!
fuente
WHERE CustomerName LIKE 'a%'
- Encuentra los valores que comienzan con "a"Si modifica las tablas de concesión manualmente (mediante INSERT, UPDATE, etc.), debe ejecutar una
FLUSH PRIVILEGES
instrucción para indicarle al servidor que vuelva a cargar las tablas de concesión.PD: No recomendaría permitir que ningún host se conecte para ningún usuario (especialmente no el
root
uso). 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.fuente
Simplemente use la interfaz proporcionada por la herramienta GUI de MySql (SQLyog):
Haga clic en Administrador de usuarios:
Ahora, si desea otorgar acceso PARA CUALQUIER OTRA PC REMOTA, solo asegúrese de que, al igual que en la imagen debajo, el valor del campo Host sea% (que es el comodín)
fuente
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, excepto para 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 usar
y funcionará bien (Como otros han mencionado, es una idea terrible otorgar privilegios administrativos a un usuario desde cualquier dominio).
fuente
Una manera simple es iniciar sesión en phpmyadmin con la cuenta raíz, ir a la base de datos mysql y seleccionar la tabla de usuario, editar la cuenta raíz y agregar en el campo host% comodín. y luego a través de privilegios de descarga ssh
fuente
Si se trata de una instalación reciente de mysql, antes de cambiar cualquier otra cosa, simplemente intente ejecutar este comando y luego intente nuevamente:
Esto solo soluciona el problema para mí en Ubuntu 16.04, mysql 5.7.20. YMMV.
fuente
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á: "Access Hosts", simplemente agregue su host remoto aquí y ¡está funcionando ahora!
Supongo que hay una opción similar en otros paneles C. como plesk, etc.
Espero que también te haya sido útil.
fuente
Bueno, nada de la respuesta anterior funcionó para mí. Después de mucha investigación, encontré una solución. Aunque puedo llegar tarde, esto puede ayudar a otros en el futuro.
Inicie sesión en su servidor SQL desde una terminal
Esto debería resolver el problema del permiso.
Feliz codificación !!
fuente
Bueno, lo que puedes hacer es abrir el archivo mysql.cfg y debes cambiar la dirección de enlace a esto
dirección-enlace = 127.0.0.1
y luego reinicie mysql y podrá conectar ese servidor a esto.
Mira esto, puedes tener una idea de eso.
esto es un verdadero sol
fuente
Si te estás ejecutando en Windows; Una solución simple es ejecutar el asistente de configuración de la instancia del servidor MySQL. Está en su grupo MYSQL en el menú de inicio. En la segunda desde la última pantalla, haga clic en el cuadro que dice "permitir acceso raíz desde máquinas remotas".
fuente
Si tiene WAMP Server + Windows 10 y lo está utilizando para el desarrollo, haga clic con el botón derecho en Wamp Icon =>
Wamp Settings
=>Check Allow Virtual Hosts other than 127*
fuente
También estaba enfrentando el mismo problema. Lo resolví en 2 minutos para mí, solo lista blanca ip a través de cpanel
Suponga que está intentando conectar la base de datos del servidor B desde el servidor A. Vaya al Servidor B Cpanel-> Remote MySQL-> ingrese la Dirección IP del Servidor A y listo.
fuente
Esta respuesta podría ayudar a alguien ...
Todas estas respuestas no ayudaron, luego me di cuenta de que olvidé verificar una cosa crucial ... El puerto :)
Tengo mysql ejecutándose en un contenedor docker 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 equivocado! doh!
fuente
este error porque no hay contraseña para la raíz, y esto puede ocurrir cuando intentas conectarte desde el exterior.
fuente
Solución CPANEL
Vaya a Cpanel, busque Remote MySQL. Agregue la IP en el campo de entrada:
Host (% comodín está permitido)
Comenta para recordar qué IP es esa. Eso fue todo por mí.
fuente
¡Esto funciona para cualquier futura conexión mysql remota!
Navegue a la línea que comienza con la directiva bind-address. Debe tener un aspecto como este:
Inicie sesión en su mysql como terminal raíz
finalmente Otorgue a esa máquina permiso exclusivo para conectarse a la base de datos de forma remota con el siguiente comando.
fuente
En el caso 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 SQLyog) y trabajé durante algunas horas. Después 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 volví a intentar en SQLyog ... y funcionó. No puedo explicarlo más que 'peculiaridad aleatoria de la computadora', pero creo que podría ayudar a alguien.
fuente
si está intentando ejecutar la consulta mysql sin definir la cadena de conexión, obtendrá este error.
Probablemente olvidó definir la cadena de conexión antes de la ejecución. has visto esto? (perdón por mal inglés)
fuente
Problema: root @ localhost no puede conectarse a una nueva instalación de mysql-community-server en openSUSE 42.2-1.150.x86_64. Mysql rechaza las conexiones - punto.
Solución:
El archivo user.MYD tiene un tamaño de 0 (¿realmente?!). Copié los 3 archivos de otro sistema de trabajo.
Pude iniciar sesión. Entonces, fue 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.
fuente
Esto funciona para DirectAdmin ;
DirectAdmin
.MySQL Management
.database
.Accesse Host
pestaña, hay un campo. Debe completar este campo porxxx.xx.xxx.xx
.Add Host
.Terminado. Ahora puede acceder a esta base de datos con su
your_database_username
&your_database_password
.¡Tan sencillo!
fuente
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 solo.
Si estas usando
VB.NET
En lugar de este código:
Necesitas moverte
MysqlConn = New MySqlConnection()
en la primera línea. Entonces sería asífuente