sql >> Base de Datos >  >> RDS >> Mysql

La conexión MySQL no funciona

Aquí hay una lista de verificación rápida para habilitar conexiones remotas para MySQL, pero lea (6) primero. Si me he perdido algo, siéntete libre de editar.

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 ). De lo contrario, consulte el CREATE USER y/o GRANT comandos Examine la salida de SHOW GRANTS para el usuario.

2) Ha realizado flush privileges; (Algunos dicen que es innecesario, otros dicen que lo es).

3a) Localice su archivo de configuración mysql al que se hace referencia en 3b) a continuación revisando la información en Este documento (o para Windows, probablemente en C:\ProgramData\MySQL\MySQL Server 5.NNN sendero). Varía según la distribución de Linux.

3b) Ha modificado y guardado my.ini (Windows) o my.cnf (Linux) y cambió bind-address lejos de 127.0.0.1 o localhost , a favor de 0.0.0.0 . Y has creado y eliminó la siguiente línea:#skip-networking . Se verá similar a esto:

[mysqld]
bind-address=0.0.0.0
#skip-networking

4) Reinicie el demonio mysql. Cómo se hace esto varía según la distribución.

5) Problemas con el cortafuegos. Asegúrese de que el puerto sea el predeterminado 3306 , está abierto al mundo exterior (que, de hecho, puede ser solo su intranet). Esto incluye cualquier otra capa de cortafuegos, como los grupos de seguridad de AWS EC2 o similares, si los hay.

6) Comprenda que existe un riesgo de seguridad asociado con esto. A menos que sepa cómo exponer su servidor mysql a conexiones remotas, no haga esto.

7) Ejecute evaluaciones de seguridad frecuentes con select declaración enumerada en 1. anterior, incluida la revisión de SHOW GRANTS para esos usuarios. No otorgue en exceso a los usuarios con comodines innecesariamente. Más bien, dé a los usuarios los privilegios mínimos para que puedan realizar su trabajo.

8) Examine con frecuencia los intentos fallidos de conexión a través del Registro general y el Registro de errores como se presenta brevemente a continuación.

Para las llamadas entrantes, puede consultar el registro general de consultas.

select @@general_log; -- a 1 indicates it is turned on for capture
select @@general_log_file; -- the file that it logs to

Entonces todas las consultas pueden ser registrado en el Registro de consultas generales si la configuración está activada. Examine el registro para "conectar", pero especialmente para Access denied for user para ver los intentos fallidos. Haga esto regularmente (no cada pocos años). Lo hago al menos dos veces al día. Tenga en cuenta que, obviamente, puede automatizar los informes a través de un programa externo. El mundo exterior va a golpear su servidor para entrar como la imagen de abajo. Es una realidad; prepárate para ello.

Consulte la página del manual para El registro de errores también, teniendo en cuenta los niveles de advertencia y la configuración de verbosidad según su versión.

Recomendaría que uno cree una copia de seguridad por fecha (llamada así) y elimine los archivos de registro después de la copia de seguridad para comenzar de nuevo después de la copia de seguridad. Los archivos de registro pueden aumentar rápidamente de tamaño, especialmente el registro general. No olvide si tiene la configuración activada o desactivada para iniciar sesión.

Puede usar los dos registros para determinar si su intento de conexión superó el firewall durante los pasos aquí.