Puede configurar MariaDB para que se ejecute de la manera que desee configurando el servidor con los archivos de opciones de MariaDB. El archivo de opciones predeterminado de MariaDB se llama my.cnf en sistemas operativos similares a Unix y my.ini en Windows. Dependiendo de cómo haya instalado MariaDB, el archivo de opciones predeterminado puede estar en varios lugares o puede que no exista en absoluto.

Opciones globales relacionadas con archivos de opciones

Las siguientes opciones se relacionan con la forma en que MariaDB maneja los archivos de opciones. Estas opciones se pueden utilizar con la mayoría de las herramientas de línea de comandos de MariaDB, no solo mysqld. Deben darse como primer argumento en la línea de comandos:

Opción Descripción
--print-defaults Lea las opciones de los archivos de opciones, imprima todos los valores de las opciones y luego salga del programa.
--no-defaults No lea las opciones de ningún archivo de opciones.
--defaults-file =path Solo lea las opciones del archivo de opciones dado.
--defaults-extra-file =path Lea este archivo de opciones adicional después de leer todos los demás archivos de opciones.
--defaults-group-suffix =suffix Además de los grupos de opciones predeterminados, lea también los grupos de opciones con el sufijo dado.

Ubicaciones de archivos de opciones predeterminadas

MariaDB lee archivos de opciones de muchos directorios diferentes de forma predeterminada. Consulte las secciones siguientes para averiguar qué directorios se comprueban para qué sistema.

Para obtener una lista exacta de archivos de opciones leídos en su sistema por un programa específico, puede ejecutar:

$program --help --verbose

Por ejemplo:

$ mysqld --help --verbose
mysqld  Ver 10.3.13-MariaDB-log for Linux on x86_64 (MariaDB Server)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Starts the MariaDB database server.

Usage: mysqld [OPTIONS]

Default options are read from the following files in the given order:
/etc/my.cnf ~/.my.cnf
The following groups are read: mysqld server mysqld-10.3 mariadb mariadb-10.3 client-server galera
....

Los archivos de opciones se escanean una vez, en el orden indicado por --help --verbose. El efecto de las opciones de configuración es como si se hubieran dado como opciones de línea de comando en el orden en que se encuentran.

Ubicaciones de archivos de opciones predeterminadas en Linux, Unix, Mac

En Linux, Unix o Mac OS X, el archivo de opciones predeterminado se llama my.cnf. MariaDB busca el archivo de opciones MariaDB en las ubicaciones y pedidos que se enumeran a continuación.

MariaDB comenzando con 10.0.13

En MariaDB 10.0.13 y luego, las ubicaciones dependen de si el DEFAULT_SYSCONFDIR cmake La opción se definió cuando se construyó MariaDB. Esta opción generalmente se define como /etc al crear paquetes RPM, pero normalmente no se define al crear paquetes DEB o tarballs binarios.

  • Cuando el DEFAULT_SYSCONFDIR cmake la opción era no definido, MariaDB busca el archivo de opciones MariaDB en las siguientes ubicaciones en el siguiente orden:
Localización Alcance
/etc/my.cnf Global
/etc/mysql/my.cnf Global
$MYSQL_HOME/my.cnf Servidor
archivo-extra-predeterminado Archivo especificado con --defaults-extra-file, Si alguna
~/.my.cnf Usuario
  • Cuando el DEFAULT_SYSCONFDIR cmake se definió la opción, MariaDB busca el archivo de opciones MariaDB en las siguientes ubicaciones en el siguiente orden:
Localización Alcance
DEFAULT_SYSCONFDIR/my.cnf Global
$MYSQL_HOME/my.cnf Servidor
archivo-extra-predeterminado Archivo especificado con --defaults-extra-file, Si alguna
~/.my.cnf Usuario

MariaDB hasta 10.0.12

Localización Alcance
/etc/my.cnf Global
/etc/mysql/my.cnf Global
SYSCONFDIR/my.cnf Global
$MYSQL_HOME/my.cnf Servidor
archivo-extra-predeterminado Archivo especificado con --defaults-extra-file, Si alguna
~/.my.cnf Usuario
  • MYSQL_HOME es la variable de entorno que contiene la ruta al directorio que contiene el servidor específico my.cnf expediente. Si MYSQL_HOME no está configurado y el servidor se inicia con mysqld_safe, MYSQL_HOME se establece de la siguiente manera:

    • Si hay un my.cnf archivo en el directorio de datos MariaDB, pero no en el directorio base MariaDB, MYSQL_HOME está configurado en el directorio de datos MariaDB.
    • Demás, MYSQL_HOME está configurado en el directorio base de MariaDB.

Ubicaciones de archivos de opciones predeterminadas en Windows

En Windows, el archivo de opciones se puede llamar my.ini o my.cnf. MariaDB busca el archivo de opciones MariaDB en las siguientes ubicaciones en el siguiente orden:

Localización Alcance
System Windows Directorymy.ini Global
System Windows Directorymy.cnf Global
Windows Directorymy.ini Global
Windows Directorymy.cnf Global
C:my.ini Global
C:my.cnf Global
INSTALLDIRmy.ini Servidor
INSTALLDIRmy.cnf Servidor
INSTALLDIRdatamy.ini Servidor
INSTALLDIRdatamy.cnf Servidor
%MYSQL_HOME%my.ini Servidor
%MYSQL_HOME%my.cnf Servidor
archivo-extra-predeterminado Archivo especificado con --defaults-extra-file, Si alguna
  • los System Windows Directory es el directorio devuelto por el GetSystemWindowsDirectory función. El valor suele ser C:Windows. Para encontrar su valor específico en su sistema, abra cmd.exe y ejecutar:
    echo %WINDIR%

  • los Windows Directory es el directorio devuelto por el GetWindowsDirectory función. El valor puede ser privado Windows Directory para la aplicación, o puede ser el mismo que el System Windows Directory devuelto por el GetSystemWindowsDirectory función.
  • INSTALLDIR es el directorio padre del directorio donde mysqld.exe se encuentra. Por ejemplo, si mysqld.exe es en C:Program FilesMariaDB 10.3bin, luego INSTALLDIR sería C:Program FilesMariaDB 10.3.
  • MYSQL_HOME es la variable de entorno que contiene la ruta al directorio que contiene el servidor específico my.cnf expediente.

Jerarquía de archivos de opciones predeterminada

MariaDB buscará en todas las ubicaciones anteriores, en orden, incluso si ya ha encontrado un archivo de opciones, y es posible que exista más de un archivo de opciones. Por ejemplo, podría tener un archivo de opciones en /etc/my.cnf con la configuración global para todos los servidores, y luego podría otro archivo de opciones en ~/.my.cnf (es decir, el directorio de inicio de su cuenta de usuario) que especificará configuraciones adicionales (o anulará las configuraciones especificadas previamente) que son específicas solo para ese usuario.

Los archivos de opciones suelen ser opcionales. Sin embargo, si el --defaults-file La opción está configurada, y si el archivo no existe, MariaDB generará un error. Si el --defaults-file está configurada la opción, entonces MariaDB solamente leer el archivo de opciones al que hace referencia esta opción.

Si una opción o variable del sistema no se establece explícitamente, se establecerá en su valor predeterminado. Consulte Variables del sistema del servidor para obtener una lista completa de todas las variables del sistema del servidor y sus valores predeterminados.

Ubicaciones de archivos de opciones personalizadas

MariaDB se puede configurar para leer opciones de archivos de opciones personalizadas con los siguientes argumentos de línea de comandos. Estos argumentos de la línea de comandos se pueden usar con la mayoría de las herramientas de línea de comandos de MariaDB, no solo mysqld. Deben darse como primer argumento en la línea de comandos:

Opción Descripción
--defaults-file =path Solo lea las opciones del archivo de opciones dado.
--defaults-extra-file =path Lea este archivo de opciones adicional después de leer todos los demás archivos de opciones.

Sintaxis del archivo de opciones

La sintaxis de los archivos de opciones MariaDB es:

  • Las líneas que comienzan con # son comentarios.
  • Las líneas vacías se ignoran.
  • Los grupos de opciones usan la sintaxis [group-name]. Consulte la sección Grupos de opciones a continuación para obtener más información sobre los grupos de opciones disponibles.
  • El mismo grupo de opciones puede aparecer varias veces.
  • los !include La directiva se puede utilizar para incluir otros archivos de opciones. Consulte la sección Incluir archivos de opciones a continuación para obtener más información sobre esta sintaxis.
  • los !includedir La directiva se puede utilizar para incluir todos .cnf archivos (y potencialmente .ini archivos) en un directorio determinado. Los archivos de opciones dentro del directorio se leen en orden alfabético. Consulte la sección Incluir directorios de archivos de opciones a continuación para obtener más información sobre esta sintaxis.
  • Guiones (-) y guiones bajos (_) en las opciones son intercambiables.
  • Se admiten ciertos prefijos de opciones. Consulte la sección Prefijos de opciones a continuación para obtener información sobre los prefijos de opciones disponibles.
  • Consulte la sección Opciones a continuación para obtener información sobre las opciones disponibles.

Grupos de opciones

Un programa MariaDB puede leer opciones de uno o varios grupos de opciones. Para obtener una lista exacta de grupos de opciones leídos en su sistema por un programa específico, puede ejecutar:

$program --help --verbose

Por ejemplo:

$ mysqld --help --verbose
mysqld  Ver 10.3.13-MariaDB-log for Linux on x86_64 (MariaDB Server)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Starts the MariaDB database server.

Usage: mysqld [OPTIONS]

Default options are read from the following files in the given order:
/etc/my.cnf ~/.my.cnf
The following groups are read: mysqld server mysqld-10.3 mariadb mariadb-10.3 client-server galera
....

Grupos de opciones de servidor

Los programas MariaDB leen las opciones del servidor de los siguientes grupos de opciones del servidor:

Grupo Descripción
[client-server] Opciones leídas por todos los programas cliente MariaDB y el servidor MariaDB. Esto es útil para opciones como socket y puerto, que es común entre el servidor y los clientes.
[server] Opciones leídas por MariaDB Server.
[mysqld] Opciones leídas por mysqld, que incluye MariaDB Server y MySQL Server.
[mariadb] Opciones leídas por MariaDB Server.
[mysqld-X.Y] Opciones leídas por una versión específica de mysqld, que incluye MariaDB Server y MySQL Server. Por ejemplo, [mysqld-5.5]
[mariadb-X.Y] Opciones leídas por una versión específica de MariaDB Server. Por ejemplo, [mariadb-10.3]
[galera] Opciones leídas por MariaDB Server, pero solo si está compilado con el soporte de Galera Cluster. En MariaDB 10.1 y posteriores, todas las compilaciones en Linux se compilan con el soporte de Galera Cluster. Cuando se usa una de estas compilaciones, las opciones de este grupo de opciones se leen incluso si la funcionalidad de Galera Cluster no está habilitada.

XY en los ejemplos anteriores, haga referencia a la versión básica (principal, menor) del servidor. Por ejemplo, MariaDB 10.3.10 leería de [mariadb-10.3]. Usando el mariadb-X.Y sintaxis, se pueden crear archivos de opciones que tengan opciones exclusivas de MariaDB en los grupos de opciones específicos de MariaDB. Eso permitiría que el archivo de opciones funcione tanto para MariaDB como para MySQL.

Grupos de opciones de cliente

Los programas MariaDB leen las opciones del cliente de los siguientes grupos de opciones:

Grupo Descripción
[client] Opciones leídas por todos los programas cliente MariaDB y MySQL, que incluyen clientes MariaDB y MySQL. Por ejemplo, mysqldump.
[client-server] Opciones leídas por todos los programas cliente MariaDB y el servidor MariaDB. Esto es útil para opciones como socket y puerto, que es común entre el servidor y los clientes.
[client-mariadb] Opciones leídas por todos los programas cliente de MariaDB.

Además de los grupos comunes, muchos programas cliente también leerán las opciones del cliente del grupo de opciones con el mismo nombre que el programa. Por ejemplo, mysqldump también lee las opciones del cliente de la [mysqldump] grupo de opciones.

Sufijos de grupos de opciones personalizadas

MariaDB se puede configurar para leer opciones de grupos de opciones con un sufijo personalizado proporcionando el siguiente argumento de línea de comandos. Este argumento de línea de comandos se puede utilizar con la mayoría de las herramientas de línea de comandos de MariaDB, no solo mysqld. Debe darse como primer argumento en la línea de comandos:

Opción Descripción
--defaults-group-suffix =suffix Además de los grupos de opciones predeterminados, lea también los grupos de opciones con el sufijo dado.

El sufijo de grupo predeterminado también se puede especificar mediante el MYSQL_GROUP_SUFFIX Variable ambiental.

Incluyendo archivos de opciones

Es posible incluir archivos de opciones adicionales de otro archivo de opciones. Por ejemplo, para incluir /etc/mysql/dbserver1.cnf, un archivo de opciones podría contener:

[mariadb]
...
!include /etc/mysql/dbserver1.cnf

Incluyendo directorios de archivos de opciones

También es posible incluir todos los archivos de opciones en un directorio de otro archivo de opciones. Por ejemplo, para incluir todos los archivos de opciones en /etc/my.cnf.d/, un archivo de opciones podría contener:

[mariadb]
...
!includedir /etc/my.cnf.d/

Los archivos de opciones dentro del directorio se leen en orden alfabético.

Todos los nombres de archivos de opciones deben terminar en .cnf en sistemas operativos similares a Unix. En Windows, todos los nombres de archivos de opciones deben terminar en .cnf o .ini.

Comprobación de las opciones del programa

Puede comprobar qué opciones va a utilizar un programa determinado utilizando el --print-defaults argumento de la línea de comandos:

Opción Descripción
--print-defaults Leer opciones de la opción archivos, imprima todos los valores de las opciones y luego salga del programa.

Este argumento de línea de comandos se puede utilizar con la mayoría de las herramientas de línea de comandos de MariaDB, no solo mysqld. Debe proporcionarse como primer argumento en la línea de comandos. Por ejemplo:

$ mysqldump --print-defaults
mysqldump would have been started with the following arguments:
--ssl_cert=/etc/my.cnf.d/certificates/client-cert.pem --ssl_key=/etc/my.cnf.d/certificates/client-key.pem --ssl_ca=/etc/my.cnf.d/certificates/ca.pem --ssl-verify-server-cert --max_allowed_packet=1GB

También puede comprobar qué opciones va a utilizar un programa determinado utilizando el my_print_defaults utilidad y proporcionando los nombres de los grupos de opciones que lee el programa. Por ejemplo:

$ my_print_defaults mysqldump client client-server client-mariadb
--ssl_cert=/etc/my.cnf.d/certificates/client-cert.pem
--ssl_key=/etc/my.cnf.d/certificates/client-key.pem
--ssl_ca=/etc/my.cnf.d/certificates/ca.pem
--ssl-verify-server-cert
--max_allowed_packet=1GB

los my_print_defaults utilidad --mysqld La opción de línea de comandos proporciona un acceso directo para hacer referencia a todos los grupos de opciones del servidor:

$ my_print_defaults --mysqld
--log_bin=mariadb-bin
--log_slave_updates=ON
--ssl_cert=/etc/my.cnf.d/certificates/server-cert.pem
--ssl_key=/etc/my.cnf.d/certificates/server-key.pem
--ssl_ca=/etc/my.cnf.d/certificates/ca.pem

Archivo de opción de credencial de autenticación ofuscado de MySQL 5.6

MySQL 5.6 y superior admiten un archivo de opción de credencial de autenticación ofuscado llamado .mylogin.cnf que se crea con mysql_config_editor.

MariaDB no admite esto. Las contraseñas en MySQL .mylogin.cnf sólo están ofuscados, en lugar de cifrados, por lo que la función no aporta mucho desde una perspectiva de seguridad. Es más probable que dé a los usuarios una falsa sensación de seguridad, en lugar de protegerlos seriamente.

Prefijos de opciones

MariaDB admite ciertos prefijos que se pueden usar con opciones. Los prefijos de opciones admitidos son:

Prefijo de opción Descripción
autoset Establece el valor de la opción automáticamente. Solo compatible con determinadas opciones. Disponible en MariaDB 10.1.7 y después.
disable Para todas las opciones booleanas, deshabilita la configuración (equivalente a establecerla en 0). Igual que skip.
enable Para todas las opciones booleanas, habilita la configuración (equivalente a establecerla en 1).
loose No genere un error si la opción no existe.
maximum Establece el valor máximo para la opción.
skip Para todas las opciones booleanas, deshabilita la configuración (equivalente a establecerla en 0). Igual que disable.

Por ejemplo:

[mariadb]
...
# determine a good value for open_files_limit automatically
autoset_open_files_limit

# disable the unix socket plugin
disable_unix_socket

# enable the slow query log
enable_slow_query_log

# don't produce an error if these options don't exist
loose_file_key_management_filename = /etc/mysql/encryption/keyfile.enc
loose_file_key_management_filekey = FILE:/etc/mysql/encryption/keyfile.key
loose_file_key_management_encryption_algorithm = AES_CTR

# set max_allowed_packet to maximum value
maximum_max_allowed_packet

# disable external locking for MyISAM
skip_external_locking

Opciones

Guiones (-) y guiones bajos (_) en las opciones son intercambiables.

Si una opción no se establece explícitamente, el servidor o cliente simplemente usará el valor predeterminado para esa opción.

Opciones del servidor MariaDB

Las opciones del servidor MariaDB se pueden configurar en grupos de opciones del servidor.

Para obtener una lista de opciones que se pueden configurar para MariaDB Server, consulte la lista de opciones disponibles para mysqld.

La mayoría de las variables del sistema del servidor también se pueden configurar en el archivo de opciones de MariaDB.

Opciones del cliente MariaDB

Las opciones del cliente MariaDB se pueden configurar en grupos de opciones del cliente.

Consulte la página específica de cada programa cliente para determinar qué opciones están disponibles para ese programa.

Archivos de opción de ejemplo

La mayoría de las instalaciones de MariaDB incluyen un archivo de opciones de MariaDB de muestra llamado my-default.cnf. En versiones anteriores, también habría encontrado los siguientes archivos de opciones:

  • my-small.cnf
  • my-medium.cnf
  • my-large.cnf
  • my-huge.cnf

Sin embargo, estos archivos de opciones ahora están muy anticuados para los servidores modernos, por lo que se eliminaron en MariaDB 10.3.1.

En las distribuciones de origen, los archivos de opciones de muestra se encuentran normalmente en el support-files directorio, y en otras distribuciones, los archivos de opciones se encuentran generalmente en el share/mysql directorio que es relativo al directorio de instalación base de MariaDB.

Puede copiar uno de estos archivos de opciones MariaDB de muestra y utilizarlo como base para crear el archivo de opciones MariaDB principal de su servidor.

Ejemplo de archivo de opción mínima

El siguiente es un archivo my.cnf mínimo que puede usar para probar MariaDB.

[client-server]
# Uncomment these if you want to use a nonstandard connection to MariaDB
#socket=/tmp/mysql.sock
#port=3306

# This will be passed to all MariaDB clients
[client]
#password=my_password

# The MariaDB server
[mysqld]
# Directory where you want to put your data
data=/usr/local/mysql/var
# Directory for the errmsg.sys file in the language you want to use
language=/usr/local/share/mysql/english

# This is the prefix name to be used for all log, error and replication files
log-basename=mysqld

# Enable logging by default to help find problems
general-log
log-slow-queries

Ejemplo de archivo de opción híbrida

El siguiente es un extracto de un archivo de opciones que se puede usar si se quiere trabajar tanto con MySQL como con MariaDB.

# Example mysql config file.

[client-server]
socket=/tmp/mysql-dbug.sock
port=3307

# This will be passed to all mysql clients
[client]
password=my_password

# Here are entries for some specific programs
# The following values assume you have at least 32M ram

# The MySQL server
[mysqld]
temp-pool
key_buffer_size=16M
datadir=/my/mysqldata
loose-innodb_file_per_table

[mariadb]
datadir=/my/data
default-storage-engine=aria
loose-mutex-deadlock-detector
max-connections=20

[mariadb-5.5]
language=/my/maria-5.5/sql/share/english/
socket=/tmp/mysql-dbug.sock
port=3307

[mariadb-10.1]
language=/my/maria-10.1/sql/share/english/
socket=/tmp/mysql2-dbug.sock

[mysqldump]
quick
max_allowed_packet=16M

[mysql]
no-auto-rehash
loose-abort-source-on-error

Ver también

El contenido reproducido en este sitio es propiedad de sus respectivos dueños, y MariaDB no revisa este contenido con anticipación. Los puntos de vista, la información y las opiniones expresadas por este contenido no representan necesariamente las de MariaDB o de cualquier otra parte.