Estoy tratando de seguir este tutorial para habilitar el acceso remoto a MySQL. El problema es, ¿dónde debe my.cnf
ubicarse el archivo? Estoy usando Mac OS X Lion.
Estoy tratando de seguir este tutorial para habilitar el acceso remoto a MySQL. El problema es, ¿dónde debe my.cnf
ubicarse el archivo? Estoy usando Mac OS X Lion.
Respuestas:
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:
my.cnf
archivo que esté editando a través demysql --verbose --help | grep my.cnf
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
/usr/local/mysql/etc
. Estoy en High Sierra pero se instaló algunas versiones atrás.
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
- GlobalSYSCONFDIR/my.cnf
- Global
SYSCONFDIR
representa el directorio especificado con laSYSCONFDIR
opción deCMake
cuando 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_HOME
es una variable de entorno que contiene la ruta al directorio en el quemy.cnf
reside el archivo específico del servidor . SiMYSQL_HOME
no está configurado e inicia el servidor utilizando elmysqld_safe
programa,mysqld_safe
configúrelo enBASEDIR
el directorio de instalación base de MySQL.
archivo especificado con --defaults-extra-file=path
si 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.
Correr: sudo fs_usage | grep my.cnf
Esto informará cualquier actividad del sistema de archivos en tiempo real relacionada con ese archivo.
En otra Terminal, reinicie su MySQL / MariaDB, p. Ej.
brew services restart mysql
o:
brew services restart mariadb
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.
sudo fs_usage | grep my.cnf
método es bastante eficiente. Encuentro este archivo en la carpeta: /usr/local/etc/my.cnf
private/etc/my.cnf
, /usr/local/etc/my.cnf
, /usr/local/Cellar/mysql/<myVersion>/my.cnf
, ~.my.cnf
con my_print_def
de más a la derecha de la columna. Luego, después de un tiempo, solo está /usr/local/etc/my.cnf
con mi terminal en la columna de la derecha. ¡Pero todos estos my.cnf
archivos no existen!
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:
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
(el archivo especificado con --defaults-extra-file=path
, si lo hay)~/.my.cnf
Para MySQL 5.7 en Mac OS X El Capitan: /usr/local/mysql/etc/my.cnf
Copiar conf por defecto de /usr/local/mysql/support-files/my-default.cnf
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.cnf
Luego 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
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.
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>
/etc/my.cnf
Puede abrir una terminal y escribir locate my.cnf
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:
Puedes consultar el archivo
/usr/local/bin/mysql.server
y ver desde donde my.conf
se lee.
Por lo general, es de /etc/my.cnf
o ~/my.cnf
o~/.my.cnf
~/.my.cnf
. Agregue un punto antes del nombre del archivo.
Los documentos de MySQL para qué versión está utilizando le ayudarán. Por lo general, se describe como un Options File
o MySQL Config File
.
Los documentos tienen la ubicación de estos archivos en la documentación, así como otra VITAL
información como la ubicación y pequeños ejemplos de cómo debe verse el archivo de configuración.
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
Es posible usar
!include
directivas en archivos de opciones para incluir otros archivos de opciones y!includedir
buscar 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.ini
o.cnf
.
Ejemplos de cómo encontrar su ubicación de su configuración o archivos de registro ect .:
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 '%\/%';
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
Si necesita una muestra de referencia detallada my.cnf:
Sin afiliación / asociación a las URL
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)
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.cnf
como /etc/my.cnf
o /etc/mysql/my.cnf
y la configuración se recogerá al reiniciar.
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
/private/etc/my.cnf para Catalina
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
mysql --verbose --help | grep my.cnf
donde 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.
Para Mac, lo que funcionó para mí es crear un archivo .my.cnf en mi ~ ruta. Espero que esto ayude.
Copie /usr/local/opt/mysql/support-files/my-default.cnf como /etc/my.cnf o /etc/mysql/my.cnf y luego reinicie mysql.
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.
/etc/mysql/my.cnf
pero 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.
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.
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
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.
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.