Determine qué archivo de configuración se está utilizando

¿Existe un comando para determinar qué archivo de configuración MySQL 5.0 está usando actualmente?

Si está en Linux, inicie el ‘mysqld’ con strace , por ejemplo, strace ./mysqld .

Entre todas las otras llamadas al sistema, encontrará algo como:

 stat64("/etc/my.cnf", 0xbfa3d7fc) = -1 ENOENT (No such file or directory) stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=4227, ...}) = 0 open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3 

Entonces, como puede ver … enumera los archivos .cnf, que intenta usar y finalmente usa.

Tomado del fantástico libro O’Reilly de “Alto Rendimiento MySQL”:

 $ which mysqld /usr/sbin/mysqld $ /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options" Default options are read from the following files in the given order: /etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf 

Si ejecuta mysql --verbose --help | less mysql --verbose --help | less le informará sobre la línea 11 qué archivos .cnf buscará.

También puede hacer mysql --print-defaults para mostrarle cómo se usarán los valores de configuración. Esto también puede ser útil para identificar qué archivo de configuración está cargando.

Estoy en Windows y he instalado la versión más reciente de la comunidad MySQL 5.6

Lo que hice para ver qué archivo de configuración usaba fue ir a Herramientas administrativas> Servicios> MySQL56> Hacer clic con el botón derecho> Propiedades y verificar la ruta al archivo ejecutable:

“C: / Archivos de progtwig / MySQL / MySQL Server 5.6 / bin \ mysqld” –defaults-file = “C: \ ProgramData \ MySQL \ MySQL Server 5.6 \ my.ini” MySQL56

Una alternativa es usar

 mysqladmin variables 

mysqld –help –verbose es peligroso. ¡Usted puede sobrescribir fácilmente el archivo pidfile para ejecutar la instancia! úsalo con –pid-file = XYZ

Ah, y realmente no puedes usarlo si tienes más de 1 instancia ejecutándose. Solo le mostrará el valor predeterminado.

Muy buen artículo al respecto:

¿Cómo encontrar el archivo de configuración de MySQL?

Acabo de hacer una prueba rápida en ubuntu:

  • mysql-server instalado, que creó /etc/mysql/my.cnf

  • mysqld –verbose –ayuda | grep -A 1 “Opciones predeterminadas”

110112 13:35:26 [Nota] El complemento ‘FEDERATED’ está deshabilitado.
Las opciones predeterminadas se leen de los siguientes archivos en el orden dado: /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~ / .my.cnf

  • crearon /etc/my.cnf y /usr/etc/my.cnf, cada uno con un número de puerto diferente

  • se reinició mysql – estaba usando el número de puerto establecido en /usr/etc/my.cnf

Mientras tanto, se encontró la opción –defaults-file para mysqld. Si especifica un archivo de configuración allí, solo se usará ese, independientemente de lo que devuelva / usr / sbin / mysqld –verbose –help | grep -A 1 “Opciones predeterminadas”

Lo encontré realmente útil:

  1. Encuentre el proceso MySQL en Servicios en Control Panel -> Administration Tools
  2. Haga clic con el botón derecho del mouse y elija Properties
  3. Haga clic y seleccione la Path to executable acceso al Path to executable y vea si contiene la ruta de my.ini/my.cfg

Algunos servidores tienen múltiples versiones de MySQL instaladas y configuradas. Asegúrese de que está trabajando con la versión correcta que se ejecuta con un comando de Unix de:

 ps -ax | grep mysql 

Usando MySQL Workbench se mostrará en “Estado del servidor”: enter image description here

Para las personas que ejecutan Windows Server con mysql como servicio, una manera fácil de descubrir qué archivo de configuración está ejecutando es abrir el panel de control de servicios, encontrar su servicio mysql (en mi caso ‘MYSQL56’), hacer clic derecho y hacer clic en Propiedades . A continuación, desde aquí puede verificar la “Ruta al ejecutable”, que debería tener un conmutador defaults-file que apunta a su archivo de configuración.

En caso de que esté ejecutando mac esto también se puede lograr mediante:

 sudo dtruss mysqld 2>&1 | grep cnf 

Si está en Windows, puede usar el procmon Sysinternals. Ábralo y configure los filtros de esta manera, luego haga clic en “Agregar”. Ahora procmon controlará mysqld.

enter image description here

Ahora inicia tu servidor mysql como siempre. Procmon capturará las operaciones de fondo de mysql. Busque “mi”. en el panel de resultados del procmon, encontrará algo como lo siguiente:

enter image description here

Está claro que mysql busca una lista de archivos de configuración por turno. En mi caso, encontró C:\mysql-5.7.19-winx64\my.cnf éxito, así que está usando este.