Por alguna razón, no he podido conectarme de forma remota a mi servidor MySQL. He intentado todo y sigo recibiendo errores.
root@server1:/home/administrator# mysql -u monty -p -h www.ganganadores.cl
Enter password:
ERROR 1045 (28000): Access denied for user 'monty'@'server1.ganganadores.cl' (using password: YES)
Ahora, he intentado correr
GRANT ALL ON *.* to monty@localhost IDENTIFIED BY 'XXXXX';
GRANT ALL ON *.* to monty@'%' IDENTIFIED BY 'XXXXXX';`
y aun nada! Que estoy haciendo mal
EDITAR : my.cnf
ha comentado el bind ip.
Respuestas:
Para exponer MySQL a cualquier otra cosa que no sea localhost, deberá tener la siguiente línea
Para mysql versión 5.6 y anteriores
descomentado
/etc/mysql/my.cnf
y asignado a la dirección IP de su computadora y no loopbackPara mysql versión 5.7 y superior
descomentado
/etc/mysql/mysql.conf.d/mysqld.cnf
y asignado a la dirección IP de su computadora y no loopbackO agregue un
bind-address = 0.0.0.0
si no desea especificar la IPLuego detenga y reinicie MySQL con la nueva entrada my.cnf. Una vez ejecutado, vaya a la terminal e ingrese el siguiente comando.
Eso debería devolver algo como esto con su IP real en los xxx
Si la declaración anterior se devuelve correctamente, podrá aceptar usuarios remotos. Sin embargo, para que un usuario remoto se conecte con los privilegios correctos, debe tener ese usuario creado tanto en localhost como en '%' como en.
luego,
y finalmente,
Si no ha creado el mismo usuario que el anterior, cuando inicie sesión localmente, puede heredar los privilegios básicos de localhost y tener problemas de acceso. Si desea restringir el acceso que tiene myuser, deberá leer la sintaxis de la declaración GRANT AQUÍ. Si supera todo esto y aún tiene problemas, publique algún resultado de error adicional y las líneas apropiadas de my.cnf.
NOTA: Si lsof no regresa o no se encuentra, puede instalarlo AQUÍ según su distribución de Linux. No necesita lsof para que las cosas funcionen, pero es extremadamente útil cuando las cosas no funcionan como se esperaba.
fuente
lsof -i -P | grep :3306
, eso no funcionó, pero la conexión remota aún funciona bien sin esa confirmación, ignore si no ve el resultado correcto.sudo lsof -i -P
será mucho más útil quelsof -i -P
(suponiendo que haya iniciado sesión como un usuario sin privilegios).lsof -i -P | grep :3306
no devuelve nada!Agregue algunos puntos a la excelente publicación de apesa:
1) Puede usar el comando a continuación para verificar la dirección IP que el servidor mysql está escuchando
2) Úselo
FLUSH PRIVILEGES
para forzar la carga de las tablas de subvenciones si por alguna razón los cambios no se hacen efectivos inmediatamente3) Si el firewall netfilter está habilitado (
sudo ufw enable
) en la máquina del servidor mysql, haga lo siguiente para abrir el puerto 3306 para acceso remoto:comprobar el estado usando
4) Una vez que se establece una conexión remota, se puede verificar en la máquina cliente o servidor mediante comandos
fuente
sudo ufw status
!!netstat -nlt | grep 3306
devuelve vacíoMySQL solo escucha localhost, si queremos habilitar el acceso remoto a él, entonces necesitamos hacer algunos cambios en el archivo my.cnf:
Necesitamos comentar la dirección de enlace y las líneas de bloqueo externo de salto:
Después de realizar estos cambios, necesitamos reiniciar el servicio mysql:
fuente
skip-external-locking
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Si realiza la prueba en Windows, no olvide abrir el puerto 3306.
fuente
Estás usando ubuntu 12 (bastante antiguo)
Primero, abra el archivo /etc/mysql/mysql.conf.d/mysqld.cnf ( /etc/mysql/my.cnf en Ubuntu 14.04 y versiones anteriores
Debajo de [mysqld] Localice la línea, bind-address = 127.0.0.1 y cámbiela a, bind-address = 0.0.0.0 o comente
Luego, reinicie el servidor Ubuntu MysQL
systemctl restart mysql.service
Ahora Ubuntu Server permitirá el acceso remoto al servidor MySQL, pero aún necesita configurar los usuarios de MySQL para permitir el acceso desde cualquier host.
El usuario debe tener
'username'@'%'
todas las subvenciones requeridasPara asegurarse de que el servidor MySQL escuche en todas las interfaces, ejecute el comando netstat de la siguiente manera.
netstat -tulnp | grep mysql
Espero que esto funcione !
fuente