La dirección de enlace de MySQL 5.7 no funciona


17

Siempre he configurado con éxito una conexión remota para MySQL 5.5.

Hoy instalé un nuevo servidor con Ubuntu 16.04 y MySQL 5.7. Pero por alguna razón, no puedo hacer que esta instalación de MySQL escuche a otros hosts pero 127.0.0.1.

Aquí está mi /etc/mysql/conf.d/mysql.cnf:

[mysqld]
bind-address = 0.0.0.0

No pude conectarme a este servidor MySQL desde un host remoto, y cuando revisé mi netstat, me di cuenta de que MySQL solo escucha conexiones localhost.

lsof -Pni :3306 la salida es:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  5302 mysql   25u  IPv4  37280      0t0  TCP 127.0.0.1:3306 (LISTEN)

¿Cuál es el problema?


¿Bounce mysql? ¿Cuál es el resultado de netstat -lntp?
Linuxx

@Linuxx Incluso reinicié toda la máquina. tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 13050/mysqld
Hast

Supongo que agregó esa línea en ese archivo. Elimine esa línea y edite el archivo /etc/mysql/mysql.conf.d/mysqld.cnf y cambie el parámetro allí.
Linuxx

1
@Linuxx Esto funcionó como magia :) No me he dado cuenta de que hay otro directorio * .conf.d. Entonces, básicamente 5.7 mantiene la configuración [mysql] en el directorio conf.d, mientras que las configuraciones [mysqld] se guardan en mysql.conf.d. ¡Gracias! Por favor, responda, así que lo aceptaré.
Hast

1
He cambiado la dirección de enlace en /etc/mysql/mysql.conf.d/mysqld.cnf y /etc/mysql/conf.d/mysql.cnf, reinicié el servidor y aún veo "tcp 0 0 127.0. 0.1: 3306 "cuando ejecuto <netstat -tulpen
Chepech

Respuestas:


39

Cambiaron el paquete MySQL para que el parámetro de enlace esté en /etc/mysql/mysql.conf.d/mysqld.cnf ahora. Cambie el parámetro de enlace allí y elimine todo lo que haya colocado en /etc/mysql/conf.d/mysql.cnf.


Sin embargo, esto es ridículo. El propósito de "conf.d" era NO editar los valores predeterminados proporcionados por el paquete y anularlos por su propia configuración. Pero como ahora "mysql.conf.d" está anulando el nuestro, no hay una manera confiable de asegurarnos de que el nuestro llegue al final a menos que editemos "mysql.conf.d / mysqld.cnf".
kenn

@kenn: agregue su configuración en mysql.conf.d / en su lugar y asígnele el nombre "x-something"
Bell

3
Claro, pero ¿cuál es el punto de "conf.d" entonces? ¿No es "mysql.conf.d" un valor predeterminado proporcionado por el paquete, que se supone que debe ser sobrescrito por "conf.d"? Creo que el orden de carga de "conf.d" y "mysql.conf.d" debería invertirse en "/etc/mysql/my.cnf" en el nivel del paquete MySQL.
kenn
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.