MySQL, ¿dónde está la ruta my.cnf?


10

He logrado localizar mi directorio de instalación para MySQL: /usr/local/mysql/

¿Dónde puedo encontrar la ruta my.cnfpara saber dónde debo configurar el servidor? Intenté crear un /etc/my.cnf(como se muestra a continuación) y no tuvo ningún efecto

[mysqld]

#charset
collation_server=utf8_general_ci
character_set_server=utf8
default_character_set=utf8

Los detalles sobre la distribución que está utilizando serían útiles.
Tim

Estoy bastante seguro de que debian / * buntu / rhel / cent no usaría / usr / local desde una instalación de paquete. Eso suena más como holgura o freebsd.
Tim

Respuestas:


20

Según este artículo :

La ejecución de este comando desde la línea de comandos / terminal mostrará dónde buscará MySQL el archivo my.cnf en los sistemas Linux / BSD / OS X:

mysql --help | grep "Default options" -A 1 

Esto generará algo como esto:

Default options are read from the following files in the given order: 
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 

Ahora puede buscar archivos utilizando la salida anterior en /etc/my.cnf, /etc/mysql/my.cnfy así sucesivamente. Si no hay uno en una de esas ubicaciones, puede crear uno y saber que MySQL lo usará.


3

En un sistema Linux, 'localizar my.cnf "será la solución más rápida.

Si hay varios archivos my.cnf, todos mirando probable (por ejemplo, en /etc, /etc/mysql, /opt/mysql/etc, etc.), entonces se puede ejecutar stracepara ver donde MySQL intenta binarios para encontrar su archivo de configuración, pero yo creo que sea una exageración.


Lo consigo -bash: locate: command not found... lo he intentado find / my.cnfpero no encuentra nada.
Webnet

Esto supone que su ubicaciónb se ha actualizado desde que se creó el archivo my.cnf. Por lo general, esto se hace diariamente a través de cron. Si necesita actualizarlo manualmente, ejecute "updatedb" como root
ckliborn el

locate: command not foundno es un problema actualizado, no tiene el paquete.
Tim

instale el paquete "slocate".
TheCompWiz

2

OK un tiro salvaje en la oscuridad:

Si la base de datos está instalada en /usr/local/mysql, a continuación, intente buscar en /etc/localparamy.cnf

Así es como puede saber si tiene un my.cnf

Ejecute esta consulta (<= 5.6.7)

SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME IN ('wait_timeout',
'innodb_buffer_pool_size','innodb_log_file_size');

O (>= 5.6.8)se movió al esquema de rendimiento.

SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME IN ('wait_timeout',
'innodb_buffer_pool_size','innodb_log_file_size');
SHOW GLOBAL VARIABLES LIKE 'wait_timeout';
SHOW GLOBAL VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW GLOBAL VARIABLES LIKE 'innodb_log_file_size';

Si debe obtener:

Está ejecutando valores predeterminados y existe la posibilidad de que no haya un my.cnfregalo.

NOTA:

A partir de MySQL 5.7.6, la información disponible en las tablas aquí descritas también está disponible en el Esquema de rendimiento. Las tablas INFORMATION_SCHEMA están en desuso en lugar de las tablas del esquema de rendimiento y se eliminarán en una versión futura de MySQL. Para obtener consejos sobre cómo migrar fuera de las tablas INFORMATION_SCHEMA a las tablas del Esquema de rendimiento, consulte la Sección 25.20, “Migración a las tablas de sistema y tablas de variables de estado del rendimiento”.


-bash: updatedb: command not found
Webnet

Actualicé mi respuesta. Inténtalo de nuevo !!!
RolandoMySQLDBA

/usr/bin/which: no updatedb in (/sbin:/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/games:/opt/gnome/bin:/opt/kde3/bin:/usr/lib/java/bin:/usr/local/apache2/bin:/usr/local/firefox:/usr/local/mysql/bin:/usr/games:/usr/local/fetter/bin)
Webnet

1

¿Cómo instaló MySQL y en qué plataforma?

Método de fuerza bruta en un sistema operativo unixoide:

find / -name my.cnf -print

No lo instalé, está en una máquina que tiene algunos años. Está encendidoLinux mars 2.6.5-7.147-bigsmp #1 SMP Thu Jan 27 09:19:29 UTC 2005 i686 i686 i386 GNU/Linux
Webnet

1

strace -fe open /etc/init.d/mysql start 2>&1|grep my.cnf debería mostrarle la llamada al sistema utilizada para abrir el archivo.


1

Parece que el archivo que creó su cnf está siendo reemplazado por otro. Consulte el pedido predeterminado a continuación.

Desde

mysqld --verbose --help

Las opciones predeterminadas se leen de los siguientes archivos en el orden dado: /etc/my.cnf ~ / .my.cnf /etc/my.cnf


1

¿Cómo está seguro de que su archivo cnf no se está leyendo?

¿Has reiniciado mysqld desde el cambio?

¿Has intentado crear una nueva base de datos y examinado sus valores?


0

Para instalar localizar y actualizadob para poder ejecutarlo ..

Usando fedora, los centos se ejecutan como root:

yum install mlocate

si está ejecutando Ubuntu, ejecute:

sudo apt-get install mlocate

Después de finalizar la instalación, ejecute updatedb Fedora (como root):

$updatedb 

Ubuntu:

sudo updatedb

entonces puede ejecutar el comando de localización como se indica arriba. Nuevamente, my.cnf se encuentra típicamente en / etc. ¿Estás seguro de que mysql está instalado? ¡si no, siga los comandos anteriores para instalarlo y reemplazar mlocate con mysqld mejor de las suertes!

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.