¿Por qué /etc/mysql/my.cnf está VACÍO?

15

Estoy tratando de editar el my.cnfarchivo para permitir el acceso remoto y, en última instancia, uso el software de mi servidor de Windows para configurar la copia de seguridad programada para el servidor MySQL.

Estaba siguiendo estas instrucciones . Sin embargo, el /etc/mysql/my.cnfarchivo en mi Ubuntu solo tiene:

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

No contiene ninguna configuración que pueda editar. ¿Por qué es así?

Mercedez
fuente
Todo lo que significa es que el archivo está en estado predeterminado, en su forma original desde la instalación
Sergiy Kolodyazhnyy

Respuestas:

29

En primer lugar, como señala AB correctamente, el archivo no está vacío. Tiene dos directivas bastante importantes, a saber

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Esas líneas dicen que se pueden encontrar archivos de configuración adicionales (.cnf en este caso) en los directorios enumerados:

/etc/mysql/conf.d/
/etc/mysql/mysql.conf.d/

El último de los dos directorios debe contener mysqld.cnf . En otras palabras, el archivo de configuración apropiado debe ser:

/etc/mysql/mysql.conf.d/mysqld.cnf
Tequidémico
fuente
2
algo no está bien de ninguna manera. cuando puedo editar el archivo my.conf hasta la mitad vacía y por ejemplo conjunto wait_timeout = 600, el servicio de MySQL no se puede iniciar ya ..
phil294
Esta es la respuesta exacta a la pregunta.
Lasitha Benaragama
¡Ojalá pudiera encontrarlo 6 horas antes!
neófito el
@Blauhirn Lo mismo aquí cuando establezco una contraseña aquí. Sin él, el servicio comienza, pero aparentemente bajo [mysqld] no todo se analiza correctamente como wait_timout y contraseña.
min hundje
5

El archivo no está vacío. Contiene comentarios, las líneas con un encabezado #, y declaraciones de importación, las líneas con un encabezado !. Una declaración de importación significa que también se usarán otras configuraciones.

Editar un archivo de configuración también significa agregar nuevas líneas de configuración.

AB
fuente
3

Mi archivo es el mismo Debe agregar el grupo correcto sobre el comando que está tratando de poner, de lo contrario el servicio no se iniciará.

Para agregar bind-address, deberá agregar [mysqld]arriba.

Si necesita verificar cuáles son los grupos para los otros comandos, hay un my.cnfarchivo de ejemplo aquí .

Si desea habilitar conexiones remotas desde todas las interfaces (es decir, 0.0.0.0), su archivo se vería como se muestra a continuación, sin embargo, asegúrese de configurar su firewall correctamente si lo hace.

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

[mysqld]    
bind-address = 0.0.0.0

Tenga en cuenta el grupo [mysqld].

Robar
fuente
Este es un dolor en un **. He estado tratando de hacer que las conexiones remotas funcionen durante casi dos días. Las conexiones remotas deben habilitarse de inmediato.
Mark Alexa
¿Por qué expondría cada servidor de base de datos a Internet de forma inmediata? ¿No hay suficientes sistemas no seguros por ahí?
A. Scherbaum
2

En ese caso, ese archivo no es el principal donde se incluye toda la información sobre bind-adress, binlogs, etc. Pero hay otro archivo, donde se incluyen. Prueba esto:

nano /etc/mysql/mysql.conf.d/mysqld.cnf

Me ayudó y debería ayudarte.

Guu Mee
fuente
1

En Ubuntu 16.04 / MySQL 5.7, al menos my.cnf está realmente vacío porque es un enlace simbólico a otro archivo que enlaza de nuevo a mysql.cnf en /etc/mysql/mysql.conf.d mencionado en otras respuestas. Realice sus cambios aquí como se mencionó anteriormente.

Gavin
fuente