Ubicación del archivo my.cnf en macOS


185

Estoy tratando de seguir este tutorial para habilitar el acceso remoto a MySQL. El problema es, ¿dónde debe my.cnfubicarse el archivo? Estoy usando Mac OS X Lion.


Creo que esto pertenece a serverfault.com. Pero aún así, bienvenido a SO!
Artefact2

Respuestas:


253

Este hilo en el foro MySQL dice:

Por defecto, la instalación de OS X no usa my.cnf, y MySQL solo usa los valores predeterminados. Para configurar su propio my.cnf, puede crear un archivo directamente en / etc.

OS X proporciona ejemplos de archivos de configuración en /usr/local/mysql/support-files/.

Y si no puede encontrarlos allí, MySQLWorkbench puede crearlos para usted de la siguiente manera:

  1. Abrir una conexión
  2. Seleccionando el 'Archivo de opciones' en 'INSTANCIA' en el menú.
  3. MySQLWorkbench buscará my.cnf y si no puede encontrarlo, lo creará para usted

14
Al menos el paquete de MySQL en uso para Mac OS X (mysql-5.6.17-osx10.7-x86_64 en el momento de escribir estas líneas) lo hace , de hecho, crear y utilizar un my.cnf. Se encuentra en /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
Jpsy

104
es posible que desee asegurarse de que mysql se esté cargando en cualquier my.cnfarchivo que esté editando a través demysql --verbose --help | grep my.cnf
ryantuck

3
En Mac OS Sierra, todavía no estaba configurado. Tuve que copiar /usr/local/mysql/support-files/my-default.cnf a my.cnf en el mismo directorio. Tenga en cuenta que mysql está enlazado al paquete, en mi caso mysql-5.7.17-macos10.12-x86_64.
Christia

17
Acabo de hacer una instalación limpia de MySQL 5.7.19 en Mac OS 10.12 usando el .dmg de dev.mysql.com. No hay my.cnf en ninguno de los lugares que mysql --help dice que busca. Y no hay my-default.cnf en / usr / local / mysql / support-files / o en cualquier otro lugar que haya encontrado. Resulta que "a partir de MySQL 5.7.18, my-default.cnf ya no está incluido ni instalado por los paquetes de distribución" .
Chris Bartley

2
Esta respuesta es antigua y depende del instalador que utilizó para instalar mysql. Homebrew lo coloca en un lugar, el instalador de dmg lo coloca en otro
slashdottir

79

En el caso de Mac OS X Maverick cuando MySQL se instala a través de Homebrew, se encuentra en /usr/local/opt/mysql/my.cnf


66
que es /usr/local/Cellar/yourMySqlVersion/my.cnf
m02ph3u5

/ usr / local / opt / mariadb / VERSIONNUMBER / en mi caso MariaDB está instalado
Steven Lizarazo

9
El mío está en /usr/local/etc/my.cnf
Steve Tauber el

1
El mío fue /usr/local/mysql/etc. Estoy en High Sierra pero se instaló algunas versiones atrás.
Joshua Pinter

eres un salvavidas
Ishan Srivastava

56

En general, en los sistemas Unix y similares a Unix, los programas MySQL / MariaDB leen archivos de configuración / inicio en las siguientes ubicaciones (en el orden especificado):

  • /etc/my.cnf - Global
  • /etc/mysql/my.cnf - Global
  • SYSCONFDIR/my.cnf - Global

    SYSCONFDIRrepresenta el directorio especificado con la SYSCONFDIRopción de CMakecuando se creó MySQL. De manera predeterminada, este es el directorio etc. ubicado debajo del directorio de instalación compilado.

  • $MYSQL_HOME/my.cnf - Específico del servidor (solo servidor)

    MYSQL_HOMEes una variable de entorno que contiene la ruta al directorio en el que my.cnfreside el archivo específico del servidor . Si MYSQL_HOMEno está configurado e inicia el servidor utilizando el mysqld_safeprograma, mysqld_safeconfigúrelo en BASEDIRel directorio de instalación base de MySQL.

  • archivo especificado con --defaults-extra-file=pathsi hay alguno

  • ~/.my.cnf - Usuario específico
  • ~/.mylogin.cnf - Específico del usuario (solo clientes)

Fuente: Uso de archivos de opciones .

Nota: En las plataformas Unix, MySQL ignora los archivos de configuración que se pueden escribir en todo el mundo. Esto es intencional como medida de seguridad.


Además, en Mac hay una manera simple de verificarlo.

  1. Correr: sudo fs_usage | grep my.cnf

    Esto informará cualquier actividad del sistema de archivos en tiempo real relacionada con ese archivo.

  2. En otra Terminal, reinicie su MySQL / MariaDB, p. Ej.

    brew services restart mysql

    o:

    brew services restart mariadb
  3. En la terminal con fs_usage, se debe mostrar la ubicación adecuada, p. Ej.

    15:52:22  access            /usr/local/Cellar/mariadb/10.1.14/my.cnf                                         0.000002   sh          

    Entonces, si el archivo no existe, cree uno.


66
¡Gracias! El sudo fs_usage | grep my.cnfmétodo es bastante eficiente. Encuentro este archivo en la carpeta: /usr/local/etc/my.cnf
gary

3
Gran método, sin embargo consigo varios resultados allí: private/etc/my.cnf, /usr/local/etc/my.cnf, /usr/local/Cellar/mysql/<myVersion>/my.cnf, ~.my.cnfcon my_print_defde más a la derecha de la columna. Luego, después de un tiempo, solo está /usr/local/etc/my.cnfcon mi terminal en la columna de la derecha. ¡Pero todos estos my.cnfarchivos no existen!
Andru

@Andru Si ninguno de ellos existe, cree uno nuevo.
kenorb

1
Su último conjunto de instrucciones re sudo fs_usage | grep my.cnf fue lo único que me ayudó en esta página, ya que por alguna razón desconocida mysqld no se cargaba desde las ubicaciones predeterminadas que se enumeran a través de mysql -?
redbirdo

1
Ese comando sudo fs_usage | grep my.cnf me salvó el día, Un millón de gracias.
Shashikant Soni

33

No sé qué versión de MySQL está utilizando, pero aquí hay posibles ubicaciones del archivo my.cnf para la versión 5.5 (tomada de aquí ) en Mac OS X:

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. SYSCONFDIR/my.cnf
  4. $MYSQL_HOME/my.cnf
  5. defaults-extra-file(el archivo especificado con --defaults-extra-file=path, si lo hay)
  6. ~/.my.cnf


21

Si está utilizando macOS Sierra y el archivo no existe, ejecute

mysql --help or mysql --help | grep my.cnf

para ver las posibles ubicaciones y la secuencia de carga / lectura de my.cnf para mysql, cree el archivo my.cnf en uno de los directorios sugeridos y luego agregue la siguiente línea

[mysqld] sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

sudo touch /{preferred-path}/my.cnfLuego puede editar el archivo para agregar el modo sql

sudo nano /{preferred-path}/my.cnf

Luego reinicie mysql, voilaah, está listo para comenzar. codificación feliz


13

El paquete MySQL actual para Mac OS X Mavericks (mysql-5.6.17-osx10.7-x86_64 en el momento de escribir este artículo) crea automáticamente un my.cnf durante la instalación.

Se encuentra en /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
Adaptar su ruta de acuerdo con su versión.


12

Así que ninguna de estas cosas funcionó para mí. Estoy usando la instalación actual de dmg del servidor de la comunidad mysql. ps muestra que todos los parámetros más críticos normalmente en my.cnf se pasan en la línea de comando, y no pude averiguar de dónde venía. Después de hacer una búsqueda de texto completo de mi cuadro, lo encontré en:

/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist

Por lo tanto, puede cambiarlos allí o eliminarlos para que realmente respete los que tiene en my.cnf donde haya decidido colocarlos.

¡Disfrutar!

Ejemplo de la información del archivo que se encuentra en ese archivo:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>             <string>com.oracle.oss.mysql.mysqld</string>
    <key>ProcessType</key>       <string>Interactive</string>
    <key>Disabled</key>          <false/>
    <key>RunAtLoad</key>         <true/>
    <key>KeepAlive</key>         <true/>
    <key>SessionCreate</key>     <true/>
    <key>LaunchOnlyOnce</key>    <false/>
    <key>UserName</key>          <string>_mysql</string>
    <key>GroupName</key>         <string>_mysql</string>
    <key>ExitTimeOut</key>       <integer>600</integer>
    <key>Program</key>           <string>/usr/local/mysql/bin/mysqld</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/mysql/bin/mysqld</string>
            <string>--user=_mysql</string>
            <string>--basedir=/usr/local/mysql</string>
            <string>--datadir=/usr/local/mysql/data</string>
            <string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
            <string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
            <string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
             <string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
             <string>--early-plugin-load=keyring_file=keyring_file.so</string>

        </array>
    <key>WorkingDirectory</key>  <string>/usr/local/mysql</string>
</dict>
</plist>

¡Excelente! Salvaste mi día.
jenny

Tuve el mismo caso, pero también tuve que agregar mi archivo .cnf a/etc/my.cnf
Eduard Mukans

11

Puede abrir una terminal y escribir locate my.cnf


Lamento no ser lo suficientemente específico, aparentemente necesito copiar 'my-large.cnf' en alguna carpeta y cambiarle el nombre 'my.cnf'. Pero no sé a dónde ..
nicolas

1
además, debe tener una ubicación de base de datos poblada. en mac osx: sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
arcseldon

10

En mysql 5.6.22, que lo instalé desde Homebrew, la ruta de my.cnf es

/usr/local/opt/mysql/my.cnf 

10

macOs sierra 10.12.6 versión mysql: 5.7.18_1 Ejecuto localizar my.cnf y la ruta es

/usr/local/etc/my.cnf

Espero que sea de ayuda.


considere agregar una explicación a su respuesta
Inder

@ charles.cc.hsu: intente usar el comando locate my.cnfen su terminal. cual es el resultado?
aginanjar

6

Puede crear su archivo en cualquier directorio que desee. Después de la creación, puede "decir" la ruta a la configuración de mysql:

ingrese la descripción de la imagen aquí


6

Puedes consultar el archivo

/usr/local/bin/mysql.servery ver desde donde my.confse lee.

Por lo general, es de /etc/my.cnfo ~/my.cnfo~/.my.cnf


Corrección: ~/.my.cnf. Agregue un punto antes del nombre del archivo.
indefinido

5

Para MAMP 3.5 Mac El Capitan, cree un archivo de configuración vacío separado y escriba su configuración adicional para mysql

sudo vim /Applications/MAMP/Library/my.cnf

Y agregar así

[mysqld]
max_allowed_packet = 256M

5

Abra la Terminal y use el siguiente comando:

sudo find / -name my.cnf

4

¡LEA LOS DOCUMENTOS!

Los documentos de MySQL para qué versión está utilizando le ayudarán. Por lo general, se describe como un Options Fileo MySQL Config File.
Los documentos tienen la ubicación de estos archivos en la documentación, así como otra VITALinformación como la ubicación y pequeños ejemplos de cómo debe verse el archivo de configuración.

MySQL versión 8

MySQL versión 5.7

MySQL versión 5.6

MySQL versión 5.5

MySQL versión 5.6 japonés

Notas importantes:

En las plataformas Unix, MySQL ignora los archivos de configuración que se pueden escribir en todo el mundo.

Esto es intencional como medida de seguridad.

En otras palabras, si tiene los permisos incorrectos establecidos en su archivo de configuración, NO se cargará.

Ejemplo de permiso de configuración inicial de uno de los archivos de configuración:

RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r--  1 myusername  wheel     0B Feb 25 20:40 /etc/my.cnf

Nota:

Es posible usar !includedirectivas en archivos de opciones para incluir otros archivos de opciones y !includedirbuscar directorios específicos para archivos de opciones .....

... MySQL no garantiza el orden en que se leerán los archivos de opciones en el directorio ...

Cualquier archivo que se encuentre e incluya usando la directiva! Includedir en sistemas operativos Unix debe tener nombres de archivo que terminen en .cnf . En Windows, esta directiva busca archivos con la extensión .inio .cnf.

Ejemplos de cómo encontrar su ubicación de su configuración o archivos de registro ect .:

SQL

Esto no le mostrará el archivo de configuración, pero lo ayudará a localizar sus archivos / carpetas de instalación.

MySQL versión 5.7 y 8+

SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';

Versión MySQL <= 5.6

SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';

SHELL / Terminal

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

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

Crédito de comando anterior a: Erwin Mayer de ServerFault

RIZZOMBP$ mysqld --verbose --help | grep '/my.cnf' -B 1

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

O

RIZZOMBP$ ps aux | grep -i mysqld | grep -v $USER

_mysql 106 0.4 2.5 4232336 422112 ?? Ss 7:01PM 0:57.12
/usr/local/mysql/bin/mysqld
--user=_mysql
--basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
--plugin-dir=/usr/local/mysql/lib/plugin
--log-error=/usr/local/mysql/data/mysqld.local.err
--pid-file=/usr/local/mysql/data/mysqld.local.pid
--keyring-file-data=/usr/local/mysql/keyring/keyring
--early-plugin-load=keyring_file=keyring_file.so

Archivo de muestra

Si necesita una muestra de referencia detallada my.cnf:

  1. https://gist.github.com/search?utf8=%E2%9C%93&q=my.cnf+mysql&ref=searchresults
  2. https://www.linode.com/community/questions/5749/mysql-sample-config-files
  3. https://www.fromdual.com/mysql-configuration-file-sample

Sin afiliación / asociación a las URL

Mi sistema:

RIZZOMBP$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.14.3
BuildVersion:   18D109
RIZZOMBP$ mysql -V
mysql  Ver 8.0.15 for macos10.14 on x86_64 (MySQL Community Server - GPL)
RIZZOMBP$ mysqld -V
/usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysqld 
Ver 8.0.15 for macos10.14 on x86_64 (MySQL Community Server - GPL)

mysql --help | grep "Opciones predeterminadas" -A 1. Esto ayudó.
wandermonk

4

Estoy ejecutando MacOS Catalina (10.15.3) y encuentro my.cnfen /usr/local/etc.


2

Revisé macOS Sierra, el homebrew instalado MySql 5.7.12

Los archivos de soporte se encuentran en

/usr/local/opt/mysql/support-files

Simplemente copie my-default.cnfcomo /etc/my.cnfo /etc/mysql/my.cnfy la configuración se recogerá al reiniciar.


44
Acabo de instalar 5.7.18 en 12.12.4 a través de homebrew y no están allí.
norman_h

2

macOS High Sierra versión 10.13.6

mysql Ver 14.14 Distrib 5.7.22, para osx10.13 (x86_64) usando el envoltorio EditLine Copyright (c) 2000, 2018, Oracle y / o sus afiliados. Todos los derechos reservados

Las opciones predeterminadas se leen de los siguientes archivos en el orden dado:

/etc/my.cnf 
/etc/mysql/my.cnf 
/usr/local/etc/my.cnf 
~/.my.cnf


1

Estoy usando mysql versión 5.7.17 en macOS High Sierra versión 10.13.3 y he encontrado el archivo de configuración mysql aquí.

cd /usr/local/mysql/support-files/my-default.cnf

Gracias por el consejo para encontrar el archivo de configuración predeterminado. Tenga en cuenta que este es solo un archivo de plantilla, por lo que querrá copiarlo en una ubicación que se encuentre mysql --verbose --help | grep my.cnfdonde será recogido, según:DO NOT EDIT THIS FILE. It's a template which will be copied to the default location during install, and will be replaced if you upgrade to a newer version of MySQL.
Joshua Pinter

1

por lo general, debería estar /usr/local/etcen Mac si no lo encuentra, puede crear uno


0

Para Mac, lo que funcionó para mí es crear un archivo .my.cnf en mi ~ ruta. Espero que esto ayude.


0

Copie /usr/local/opt/mysql/support-files/my-default.cnf como /etc/my.cnf o /etc/mysql/my.cnf y luego reinicie mysql.


0

Para mí en versión sierra

copie la configuración predeterminada en:

/usr/local/Cellar/mysql/5.6.27/support-files/my-default.cnf

a

/usr/local/Cellar/mysql/5.6.27/my.cnf


0

En mi caso, el archivo no existía. En MySQL Workbench fui a OPTIONS FILE y encontré algunos valores predeterminados. Hice clic en aplicar. Pidió permiso. Luego creó el archivo my.cnf en / etc. Sin embargo, es muy importante tener en cuenta que la primera vez que hace clic en "aplicar", no realiza ningún cambio en la configuración predeterminada. Una vez que se ha creado el archivo, puede hacer cambios que se aplicarán cuando haga clic en "aplicar". De lo contrario, no se le mostrará el botón Aplicar cuando realice cambios.


Tengo un archivo de opciones /etc/mysql/my.cnfpero MySQL Workbench no lo sabe. En cambio, se queja de que no se puede encontrar el archivo de configuración con una ruta vacía y luego ofrece crear un nuevo archivo.
Alan Snyder

0

Después de la versión 5.7.18 de MySQL, no proporciona el archivo de configuración predeterminado en el directorio de archivos de soporte. Por lo tanto, puede crear el archivo my.cnf manualmente en la ubicación donde leerá MySQL, como /etc/mysql/my.cnf, y agregar la configuración que desea agregar en el archivo.


0

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


0

Estoy ejecutando MacOS Mojave (10.14.6) y para que MySQL reconozca mi archivo de configuración, tuve que colocarlo en /usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my.cnf. También tengo un enlace simbólico que lo señala desde /usr/local/@mysql/etc/my.cnf.

Estaba tratando de desactivar sql_mode = only_full_group_by y establecer esa opción en el archivo de configuración era la única forma en que podía hacer que la configuración persistiera en las sesiones. Los contenidos del archivo de configuración son:

[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION

Estoy usando la instalación nativa de MySQL, no la configuración de Homebrew.


0

Para mysql 8.0.19, finalmente encontré my.cnf aquí: /usr/local/opt/mysql/.bottle/etc Lo copié a / usr / local / opt / mysql / y lo modifiqué. Luego reinicio el servicio mysql, funciona.

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.