MySQL 5.1.31 ejecutándose en Windows XP.
Desde el servidor MySQL local (192.168.233.142) puedo conectarme como root de la siguiente manera:
>mysql --host=192.168.233.142 --user=root --password=redacted
Desde una máquina remota (192.168.233.163), puedo ver que el puerto mysql está abierto:
# telnet 192.168.233.142 3306
Trying 192.168.233.142...
Connected to 192.168.233.142 (192.168.233.142).
Pero cuando intento conectarme a mysql desde la máquina remota , recibo:
# mysql --host=192.168.233.142 --user=root --password=redacted
ERROR 1045 (28000): Access denied for user 'root'@'192.168.233.163' (using password: YES)
Solo tengo 2 entradas en mysql.user:
Host User Password
--------------------------------------
localhost root *blahblahblah
% root [same as above]
¿Qué más necesito hacer para habilitar el acceso remoto?
EDITAR
Como lo sugiere Paulo a continuación, intenté reemplazar la entrada mysql.user para% con una entrada específica de IP, por lo que mi tabla de usuario ahora se ve así:
Host User Password
------------------------------------------
localhost root *blahblahblah
192.168.233.163 root [same as above]
Luego reinicié la máquina, pero el problema persiste.
PASSWORD
con la contraseña de la cuenta. Intenté el cambio anterior soloUSERNAME
yIP
no funcionó para mí hasta que cambiéPASSWORD
.Recibí el mismo error después de otorgar acceso remoto hasta que hice esto:
De
/etc/mysql/my.cnf
En versiones más recientes de mysql, la ubicación del archivo es
/etc/mysql/mysql.conf.d/mysqld.cnf
(comentar esta línea:
bind-address = 127.0.0.1
)Entonces corre
service mysql restart
.fuente
bind-address
no funcionó para mí. Ya seabind-address = 0.0.0.0
obind-address = <server_ip>
funciona.Por defecto en el servidor MySQL, el acceso remoto está deshabilitado. El proceso para proporcionar un acceso remoto al usuario es.
PATH
mysql -uroot -proot
(o cualquiera que sea la contraseña de root).mysql>
Aquí IP es la dirección IP para la que desea permitir el acceso remoto, si ponemos
%
alguna dirección IP puede acceder de forma remota.Ejemplo:
Esto para otro usuario.
Espero que esto ayude
fuente
0 rows affected
es la norma :) Además,service mysqld restart
se recomienda al final. [amysqld
veces es solomysql
]La ayuda de Paulo me llevó a la solución. Fue una combinación de lo siguiente:
El shell bash trata el signo de dólar como un carácter especial para la expansión a una variable de entorno, por lo que debemos escapar con una barra diagonal inversa. Por cierto, no tenemos que hacer esto en el caso de que el signo de dólar sea el carácter final de la contraseña.
Como ejemplo, si su contraseña es "pas $ word", desde Linux bash debemos conectarnos de la siguiente manera:
fuente
mysql --host=192.168.233.142 --user=root --password='pas$word'
stackoverflow.com/a/6697781/500942Tiene un firewall ? asegúrese de que el puerto 3306 esté abierto.
En Windows, de manera predeterminada, se crea una cuenta raíz mysql que solo tiene acceso desde localhost a menos que haya seleccionado la opción para habilitar el acceso desde máquinas remotas durante la instalación.
crear o actualizar el usuario deseado con '%' como nombre de host.
ejemplo:
fuente
Intenta de
flush privileges
nuevo.Intente reiniciar el servidor para recargar las concesiones.
Intente crear un usuario con el host "192.168.233.163". "%" parece no permitir todo (es raro)
fuente
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass'; GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' WITH GRANT OPTION;
En mi caso, estaba tratando de conectarme a un servidor mysql remoto en un sistema operativo cent. Después de pasar por muchas soluciones (otorgar todos los privilegios, eliminar enlaces de IP, habilitar redes), el problema aún no se resolvió.
Al final resultó que, mientras buscaba en varias soluciones, me encontré con iptables, lo que me hizo darme cuenta de que el puerto mysql 3306 no aceptaba conexiones.
Aquí hay una pequeña nota sobre cómo verifiqué y resolví este problema.
Comprobando si el puerto está aceptando conexiones:
telnet (ip del servidor mysql) [portNo]
Agregar regla de tabla ip para permitir conexiones en el puerto:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
No recomendaría esto para el entorno de producción, pero si sus iptables no están configuradas correctamente, agregar las reglas podría no resolver el problema. En ese caso, se debe hacer lo siguiente:
servicio iptables stop
Espero que esto ayude.
fuente
si está utilizando una IP dinámica, simplemente otorgue acceso a 192.168.2.%, así que ahora no tiene que preocuparse por otorgar acceso a su dirección IP cada vez.
fuente
Estaba luchando con el inicio de sesión remoto en MYSQL para mi instancia de Amazon EC2 Linux. Encontré que la solución era asegurarme de que mi grupo de seguridad incluyera una regla de entrada para el puerto 3306 de MySQL para incluir mi dirección IP (o 0.0.0.0/0 para cualquier lugar). Inmediatamente pude conectarme de forma remota tan pronto como agregué esta regla.
fuente
La nueva ubicación para el archivo de configuración mysql es
fuente
MySQL ODBC 3.51 Driver es que no se manejan caracteres especiales en la contraseña.
"Advertencia: es posible que tenga un dolor de cabeza grave con MySQL ODBC 3.51 si la contraseña en su comando GRANT contiene caracteres especiales, como! @ # $% ^?. MySQL ODBC 3.51 ODBC Driver no admite estos caracteres especiales en el cuadro de contraseña. El único mensaje de error que recibiría es "Acceso denegado" (usando la contraseña: SÍ) "- de http://www.plaintutorials.com/install-and-create-mysql-odbc-connector-on-windows-7/
fuente
La combinación usuario / host puede haberse creado sin contraseña.
Supuse que al agregar un nuevo host para un usuario existente (usando una aplicación GUI), la contraseña existente también se usaría para la nueva combinación de usuario / host.
Podría iniciar sesión con
localmente, pero no desde IPADDRESS con
(Realmente podría iniciar sesión desde IPADDRESS sin usar una contraseña)
Configuración de la contraseña de acceso permitido:
fuente
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number
que me llevó a este artículo: knowmysql.blogspot.com/2013/09/… Después de seguir esos pasos, finalmente pude conectarme al servidor.