la mejor herramienta que encontré fue sqlyog, (quizás mysql workbench también), que en realidad indicaría el nombre de host del que proviene en la conexión fallida.
La razón por la que me gusta es que mantiene la seguridad estricta, mostrando algo como Acceso denegado para el usuario " sqldat.com ". Tenga en cuenta que ese nombre de host lo acabo de inventar, pero es importante, cualquiera que sea el suyo. De lo contrario, es hora de comodines, algo que no haré. Puede elegir hacerlo.
eso es importante porque ese nombre de host (hdm38.newyork.comcastbusiness.net ) es el que uso durante mysql create user
en lugar de usar comodines como %
Dejé que la conexión anterior fallara, pero observo cuál es el nombre de host anterior. Lo verás a continuación.
Una lista de verificación rápida
1) su usuario remoto se está conectando a través de una cuenta que se creó con el user,host
apropiado entradas (mire la salida de select user,host from mysql.user order by 1,2
)
CREATE USER 'santa'@'hdm38.newyork.comcastbusiness.net' IDENTIFIED BY 'mypassword';
Con ese comando anterior, ahora tenemos un nuevo usuario que tiene la oportunidad de ingresar. No se puede hacer nada. No se puede cambiar a una base de datos. Básicamente, pueden hacer cosas como select now();
2) has realizado grants
con flush privileges
(al menos el primero)
GRANT ALL PRIVILEGES ON mydb123.* TO 'santa'@'hdm38.newyork.comcastbusiness.net';
Nuestro usuario con el comando anterior ahora puede hacer cualquier cosa en la base de datos/esquema mydb123. Explore el comando Conceder anterior en el manual para ajustar el acceso al mínimo indispensable para los usuarios que cree.
Si es nuevo en la seguridad de mysql, no incluya el WITH GRANT OPTION
hasta que lo investigues.
Hay quienes dirían que el nombre de host anterior sea '%' para los pasos 1 y 2. Eso significa que santa puede conectarse desde cualquier host. La decisión es tuya. Comience bien, relájese una vez que esté llegando a algún lugar y haya investigado al respecto.
3) ha modificado my.cnf y cambió bind-address
lejos de 127.0.0.1
o localhost
, a favor de 0.0.0.0
Si la dirección de enlace no es 0.0.0.0
, solo te estás conectando con ssh
4) has modificado my.cnf y tenga una línea eliminada #skip-networking
. Incluso si tienes que crear la línea solo para rematarla, hazlo.
3/4 cambios requieren reiniciar mysql daemon
5) problemas de cortafuegos. Entonces, para EC2, necesita su AWS Security Group
que está activo para que la instancia incluya la apertura del puerto 3306