start - Para las instalaciones de homebrew mysql, ¿dónde está my.cnf?
install mysql mac terminal (11)
Para las instalaciones de homebrew mysql, ¿dónde está my.cnf? ¿Se instala uno?
Como mysql --help
muestra una lista de archivos, me parece útil canalizar el resultado a ls
para ver cuál de ellos existe:
/usr/local/Cellar/mysql/5.7.21/my.cnf
Para mi (Homebrew instalado) MySQL 5.7, parece que los archivos están en /usr/local/etc/my.cnf
.
Creo que la respuesta es no. Instalar uno en ~ / .my.cnf o / usr / local / etc parece ser la solución preferida.
En el caso de Homebrew, mysql también buscaría my.cnf en su directorio de Cellar, por ejemplo:
brew services restart mysql
Para el caso, uno prefiere mantener la configuración cerca de los archivos binarios: cree my.cnf
aquí si falta.
Reinicie mysql después del cambio:
$ mysql --help | grep /my.cnf | xargs ls
ls: /etc/my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: ~/.my.cnf: No such file or directory
/usr/local/etc/my.cnf
En tu shell escribe my_print_defaults --help
En la parte inferior del resultado, debería poder ver el archivo desde el que el servidor lee las configuraciones. Imprime algo como esto:
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
Homebrew mysql contiene archivos de configuración de muestra en la carpeta de archivos de soporte de la instalación.
ls $(brew --prefix mysql)/support-files/my-*
Si necesita cambiar la configuración predeterminada, puede utilizar uno de estos como punto de partida.
cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf
Como @rednaw señala, es muy probable que una instalación casera de MySQL esté en /usr/local
por lo que el archivo my.cnf no debe agregarse a la carpeta system /etc
, así que he cambiado el comando para copiar el archivo en /usr/local/etc
Si está utilizando MariaDB en lugar de MySQL, use lo siguiente:
cp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
Nada me ayudó realmente; no pude sobrescribir la configuración en un archivo /etc/my.cnf. Así que busqué como John sugirió https://.com/a/7974114/717251
sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
Encontró otro my.cnf en
/usr/local/Cellar/mysql/5.6.21/my.cnf
cambiando este archivo funcionó para mí! No te olvides de reiniciar el agente de lanzamiento:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
No hay my.cnf por defecto. Como tal, MySQL comienza con todas las configuraciones predeterminadas. Si desea crear su propio my.cnf para anular cualquier valor predeterminado, colóquelo en /etc/my.cnf.
Además, puede ejecutar mysql --help
y buscar en él las ubicaciones conf enumeradas.
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
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit.
--no-defaults Don''t read default options from any option file.
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
Como puede ver, también hay algunas opciones para omitir los archivos conf, o especificar otros archivos para leer cuando invoque mysql en la línea de comandos.
Para MacOS (High Sierra), MySQL que se ha instalado con home brew.
El aumento de las variables globales desde el entorno mysql no tuvo éxito. Entonces, en ese caso, la creación de ~ / .my.cnf es la opción más segura. Agregar variables con [mysqld] incluirá los cambios (Nota: si cambia con [mysql], es posible que el cambio no funcione).
<~ / .my.cnf> [mysqld] connect_timeout = 43200 max_allowed_packet = 2048M net_buffer_length = 512M
Reinicie el servidor mysql. y comprobar las variables. y
sql> SELECT @@ max_allowed_packet; + ---------------------- + | @@ max_allowed_packet | + ---------------------- + | 1073741824 | + ---------------------- +
1 fila en conjunto (0.00 seg)
Puede encontrar dónde el archivo my.cnf
ha sido proporcionado por el paquete específico, por ejemplo,
brew list mysql # or: mariadb
Además de verificar si ese archivo está leído, puede ejecutar:
sudo fs_usage | grep my.cnf
que le mostrará la actividad del sistema de archivos en tiempo real relacionada con ese archivo.
Una forma de averiguarlo:
sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
en mi sistema era
nano /usr/local/etc/my.cnf.default
como plantilla y
nano /usr/local/etc/my.cnf
como trabajando