Tabla de contenidos
Access deniedEste capítulo cubre tópicos que tratan la administración de una instalación de MySQL, como configurar el servidor, administrar cuentas de usuario y realizar copias de seguridad.
MySQL server, mysqld, es el programa principal que realiza la mayoría del trabajo en una instalación MySQL. El servidor está acompañado por varios scripts que realizan operaciones de inicialización cuando instala MySQL o se tratan de programas de ayuda para asistirle en la inicialización y parada del servidor.
Esta sección proporciona una visión global del servidor y de los programas relacionados, e información acerca de los scripts de inicialización del servidor. La información acerca de configurar el servidor se proporciona en Sección 5.3, “Configuración del servidor MySQL”.
Todos los programas MySQL aceptan diferentes opciones. Sin
embargo, cada programa MySQL proporciona una opción
--help que puede usar para obtener una
descripción de las opciones del programa. Por ejemplo, pruebe
mysqld --help.
Puede cambiar las opciones por defecto en todos los programas estándard especificando opciones en la línea de comandos o en un fichero de opciones. Sección 4.3, “Especificar opciones de programa”.
La siguiente lista describe brevemente MySQL server y sus programas relacionados:
mysqld
El demonio SQL (esto es, el servidor MySQL). Para usar programas clientes, este programa debe estar en ejecución, ya que los programas ganan el acceso a la base de datos conectándose al servidor. Consulte Sección 5.3, “Configuración del servidor MySQL”.
Una versión del servidor que incluye características adicionales. Consulte Sección 5.1.2, “El servidor extendido de MySQL mysqld-max”.
Un script de arranque del servidor. mysqld_safe intenta inicializar mysqld-max si existe, y mysqld en caso contrario. Consulte Sección 5.1.3, “El script de arranque del servidor mysqld_safe”.
Un script de arranque del servidor. Este script se usa en sistemas que utilizan directorios de ejecución que contienen scripts que inicializan servicios para niveles de ejecución particular. Invoque mysqld_safe para inicializar el servidor MySQL. Consulte Sección 5.1.4, “El script mysql.server para el arranque del servidor”.
Un script de arranque del servidor que puede arrancar o parar varios servidores instalados en el sistema. Consulte Sección 5.1.5, “El programa mysqld_multi para gestionar múltiples servidores MySQL”.
Este script crea las tablas de permisos de MySQL con privilegios por defecto. Normalmente se ejecuta sólo una vez, cuando se instala por primera vez MySQL en el sistema. Consulte Sección 2.9.2, “Pasos a seguir después de la instalación en Unix”.
Este script se usa tras una actualización, para actualizar las tablas de permisos con cualquier cambio que se hayan hecho en nuevas versiones de MySQL. Consulte Sección 2.10.2, “Aumentar la versión de las tablas de privilegios”.
Hay otros programas que también se ejecutan en la máquina del servidor:
Una utilidad para describir, testear, optimizar y reparar
tablas MyISAM.
myisamchk se describe en
Sección 5.8.3, “Mantenimiento de tablas y recuperación de un fallo catastrófico (crash)”.
Este programa crea una publicación binaria de un MySQL
compilado. Puede enviarse por FTP a
/pub/mysql/upload/ a
ftp.mysql.com para el uso de otros
usuarios de MySQL.
El script para reportar bugs. Puede usarse para enviar un reporte de bug a la lista de correo de MySQL. (Puede visitar http://bugs.mysql.com/ para rellenar un reporte de bug en línea. Consulte Sección 1.6.1.3, “Cómo informar de bugs y problemas”.)
El servidor MySQL-Maxk es una versión del servidor MySQL mysqld compilada para añadir características adicionales.
La distribución a usar depende de la plataforma:
Para Windows, las distribuciones binarias de MySQL incluyen
ambos servidores (mysqld.exe) y el
servidor MySQL-Max (mysqld-max.exe), por
lo que no es necesario adquirir ninguna distribución
especial. Símplemente use una distribución normal para
Windows, disponible en
http://dev.mysql.com/downloads/.
Consulte Sección 2.3, “Instalar MySQL en Windows”.
Para Linux, si instala MySQL utilizando una distribución
RPM, use el RPM MySQL-server en primer
lugar para instalar una versión estándard del servidor
llamada mysqld. A continuación use el
RPM MySQL-Max para instalar el servidor
llamado mysqld-max. El RPM
MySQL-Max presupone que el RPM con el
servidor normal está instalado. Consulte
Sección 2.4, “Instalar MySQL en Linux” para más información sobre los
paquetes RPM para Linux.
Todas las otras distribuciones MySQL-Max contienen un único servidor llamado mysqld pero que tiene las características adicionales incluídas.
Puede encontrar los binarios para MySQL-Max en la página Web de MySQL AB en http://dev.mysql.com/downloads/.
MySQL AB compila el servidor MySQL-Max usando las siguientes opciones de configure:
--with-server-suffix=-max
Esta opción añade un sufijo -max a la
cadena de caracteres mysqld de la
versión.
--with-innodb
Esta opción activa el soporte para el motor de almacenamiento InnoDB. Los servidores MySQL-Max siempre incluyen soporte para InnoDB . Desde MySQL 4.0 en adelante, se incluye por defecto InnoDB en todas las distribuciones binarias, por lo que no necesita un servidor MySQL-Max simplemente para obtener soporte para InnoDB.
--with-bdb
Esta opción activa el soporte para el motor de almacenamiento Berkeley DB (BDB).
USE_SYMDIR
Esta definición está activada para activar el soporte para links simbólicos en Windows. En MySQL 5.0, el soporte para links simbólicos está disponible para todos los servidores Windows, así que un servidor Max no es necesario para aprovechar esta característica.
--with-ndb-cluster
Esta opción activa el soporte para el motor de almacenamiento NDB Cluster . Actualmente (como en5.0.9-beta), el Cluster se soporta en Linux, Solaris, y Mac OS X solamente. Algunos usuarios han reportado éxitos al utilizar MySQL Cluster compilado de las fuentes en sistemas operativos basados en BSD, pero no están soportados oficialmente de momento.
Las distribuciones binarias de MySQL-Max son útiles para aquéllos que quieran instalar programas precompilados. Si compila MySQL a partir de una distribución fuente, puede construir su propio servidor de estilo Max activando las mismas características en tiempo de configuración que usan las distribuciones binarias de MySQL-Max al ser creadas.
Los servidores MySQL-Max incluyen el motor de almacenamiento BerkeleyDB (BDB) cuando es posible, pero no todas las plataformas soportan BDB.
Los servidores MySQL-Max para Solaris, Mac OS X, y Linux (en la
mayoría de plataformas) incluyen soporte para el motor de
almacenamiento NDB Cluster . Tenga en cuenta que el servidor
debe reiniciarse con la opción ndbcluster
para ejecutar el servidor como parte de un MySQL Cluster. (Para
más detalles, consulte
Sección 16.4, “Configuración de MySQL Cluster”.)
La siguiente tabla muestra en qué plataformas los binarios de MySQL-Max incluyen soporte para BDB y/o NDB Cluster:
| Sistema | Soporte BDB | Soporte NDB |
| AIX 4.3 | N | N |
| HP-UX 11.0 | N | N |
| Linux-Alpha | N | S |
| Linux-IA-64 | N | N |
| Linux-Intel | S | S |
| Mac OS X | N | N |
| NetWare | N | N |
| SCO OSR5 | S | N |
| Solaris-SPARC | S | S |
| Solaris-Intel | N | S |
| UnixWare | S | N |
| Windows NT/2000/XP | S | N |
Para ver los motores de almacenamiento que soporta su servidor, ejecute el siguiente comando:
mysql> SHOW ENGINES; +------------+---------+----------------------------------------------------------------+ | Engine | Support | Comment | +------------+---------+----------------------------------------------------------------+ | MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | | HEAP | YES | Alias for MEMORY | | MERGE | YES | Collection of identical MyISAM tables | | MRG_MYISAM | YES | Alias for MERGE | | ISAM | NO | Obsolete storage engine, now replaced by MyISAM | | MRG_ISAM | NO | Obsolete storage engine, now replaced by MERGE | | InnoDB | YES | Supports transactions, row-level locking, and foreign keys | | INNOBASE | YES | Alias for INNODB | | BDB | YES | Supports transactions and page-level locking | | BERKELEYDB | YES | Alias for BDB | | NDBCLUSTER | NO | Clustered, fault-tolerant, memory-based tables | | NDB | NO | Alias for NDBCLUSTER | | EXAMPLE | NO | Example storage engine | | ARCHIVE | YES | Archive storage engine | | CSV | NO | CSV storage engine | | FEDERATED | YES | Federated MySQL storage engine | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | +------------+---------+----------------------------------------------------------------+ 18 rows in set (0.00 sec)
(Consulte también Sección 13.5.4.8, “Sintaxis de SHOW ENGINES”.)
Antes de MySQL 4.1.2, SHOW ENGINES no está
disponible. Use el siguiente comando en su lugar y compruebe que
el valor de la variable para el motor de almacenamiento en que
está interesado:
mysql> SHOW VARIABLES LIKE 'have%'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | have_archive | YES | | have_bdb | YES | | have_blackhole_engine | YES | | have_compress | YES | | have_crypt | NO | | have_csv | NO | | have_example_engine | NO | | have_federated_engine | YES | | have_geometry | YES | | have_innodb | YES | | have_isam | NO | | have_ndbcluster | NO | | have_openssl | YES | | have_query_cache | YES | | have_raid | NO | | have_rtree_keys | YES | | have_symlink | YES | +-----------------------+-------+ 17 rows in set (0.06 sec)
La salida precisa de estos comandos SHOW
variará en función de la versión de MySQL usada (y las
características que haya activadas). Los valores en la segunda
columna indican el nivel de soporte por parte del servidor para
cada característica, como se muestra:
| Valor | Significado |
YES | La característica se soporta y está activa. |
NO | La característica no se soporta. |
DISABLED | La característica se soporta pero no está activa. |
Un valor NO significa que el servidor está
compilado sin soporte para la característica, por lo que no
puede activarse en tiempo de ejecución.
Un valor DISABLED aparece porque el servidor
se arrancó con una opción que deshabilita la característica,
o porque no todas las opciones requeridas para activarla se han
dado. En el último caso, el fichero de log de error
debería contener la razón indicando porqué la opción está
deshabilitada.
host_name.err
Puede ver el mensaje DISABLED para los
motores de almacenamiento InnoDB,
BDB, o ISAM si el servidor
está compilado para soportarlos pero se arrancó con las
opciones --skip-innodb,
--skip-bdb, o --skip-isam
en tiempo de ejecución.
Todos los servidores MySQL soportan tablas
MyISAM , ya que MyISAM es
el motor de almacenamiento por defecto.
mysqld_safe es la manera recomendada de iniciar mysqld un servidor en Unix y NetWare mysqld_safe añade algunas características de seguridad como reiniciar el servidor cuando ocurre un error y guardar la información en tiempo de ejecución en un registro de errores. Los comportamientos especificos de NetWare se mencionan más adelante en esta sección.
Nota: Para preservar la compatibilidad con antiguas versiones de MySQL, las distribuciones binarias de MySQL todavía incluyen safe_mysqld como en enlace simbólico a mysqld_safe. Aún asi, no se debería confiar en esto ya que con toda certeza será eliminado en el futuro.
Por defecto, mysqld_safe intenta lanzar un ejecutable llamado mysqld-max si existe, o mysqld en otro caso. Deben tenerse en cuenta las implicaciones de este comportamiento:
En Linux, el paquete RPM de MySQL-Max se
basa en este comportamiento de
mysqld_safe. El RPM instala un ejecutable
llamado mysqld-max, que causa que
mysqld_safe use automáticamente ese
ejecutable a partir de ese momento.
Si se instala una distribucion MySQL-Max que incluye un servidor llamado mysqld-max, y después se actualiza a una version no-Max de MySQL, mysqld_safe todavía intentará ejecutar el viejo servidor mysqld-max. Si se realiza una actualizacion tal, se debe eliminar manualmente el viejo servidor mysqld-max para asegurarse de que mysqld_safe ejecuta el nuevo servidor mysqld.
Para reemplazar el comportamiento por defecto y especificar
explícitamente qué servidor se quiere ejecutar, se debe
especificar la opción --mysqld o la opción
--mysqld-version de
mysqld_safe.
Muchas de las opciones de mysqld_safe son las mismas que las opciones de mysqld. Consulte Sección 5.3.1, “Opciones del comando mysqld”.
Todas las opciones específicas de
mysqld_safe en la línea de comandos se pasan
a mysqld. Si se desea utilizar alguna opción
que es específica de mysqld_safe y que
mysqld no soporta, no debe especificarse en
la línea de comandos. En vez de eso, debe listarse en el grupo
[mysqld_safe] de un archivo de opciones.
Consulte Sección 4.3.2, “Usar ficheros de opciones”.
mysqld_safe lee todas las opciones de las
secciones [mysqld],
[server], y [mysqld_safe]
de los archivos de opciones. Por compatibilidad con versiones
anteriores, también lee las secciones
[safe_mysqld], aunque deben renombrarse
dichas secciones a [mysqld_safe] en MySQL
5.0.
mysqld_safe soporta las siguientes opciones:
--help
Muestra un mensaje de ayuda y finaliza. (Añadido en MySQL 5.0.3)
--basedir=
ruta
La ruta al directorio de instalacion de MySQL.
--core-file-size=
tamaño
El tamaño del archivo de volcado de memoria que mysqld debería ser capaz de crear. El valor de la opción se pasa a ulimit -c.
--datadir=
ruta
La ruta al directorio de datos.
--defaults-extra-file=
ruta
El nombre de un archivo de opciones para ser leído además de los habituales.
--defaults-file=
ruta
El nombre de un archivo de opciones para ser leído en vez de los habituales.
--ledir=
ruta
La ruta a el directorio que contiene el programa mysqld. Se utiliza esta opción para indicar explícitamente la localización del servidor.
--log-error=
ruta
Escribir el registro de errores en el archivo dado. Consulte Sección 5.10.1, “El registro de errroes (Error Log)”.
--mysqld=
nombre_prog
El nombre del programa servidor (en el directorio
ledir) que se quiere ejecutar. Esta
opción es necesaria si se utiliza la distribución binaria
de MySQL pero el directorio de datos está fuera de la
distribución binaria.
--mysqld-version=
sufijo
Esta opción es similar a la opción
--mysqld, pero se especifica únicamente
el sufijo para el nombre del programa servidor. El nombre
base se asume que es mysqld. Por ejemplo,
si se usa --mysqld-version=max,
mysqld_safe inicia el programa en el
directorio ledir. Si el argumento de
--mysqld-version está vacio,
mysqld_safe usa mysqld
en el directorio ledir.
--nice=
prioridad
Se utiliza el programa nice para
establecer la prioridad del servidor a un valor dado.
--no-defaults
No leer ningún archivo de opciones.
--open-files-limit=
número
El número de ficheros que mysqld
debería ser capaz de abrir. El valor de la opción se pasa
a ulimit -n. Nótese que se necesita
iniciar mysqld_safe como
root para que esto funcione
correctamente.
--pid-file=
ruta
La ruta al archivo de ID del proceso.
--port=
num_puerto
El número de puerto a usar cuando se esperan conexiones TCP/IP.
--socket=
ruta
El archivo de socket de unix a utilizar para conexiones locales.
--timezone=
zona
Establece la variable de ambiente de zona horaria
TZ a el valor dado. Consúlte la
documentación del sistema operativo para formatos legales
de especificación de zonas horarias.
--user={
nombre_usuario |
id_usuario}
Ejecuta el servidor mysqld como el
usuario con nombre nombre_usuario
o el ID numérico de usuario
id_usuario. (``Usuario'' en este
contexto se refiere a una cuenta de login del sistema, no a
un usuario MySQL incluído en las tablas grant.)
El script mysqld_safe está escrito de manera que normalmente puede iniciar un servidor que ha sido instalado tanto desde código fuente o desde una distribución binaria de MySQL, aún cuando típicamente estos tipos de distribuciones instalan el servidor en lugares ligeramente diferentes. (Consulte Sección 2.1.5, “Conformación de la instalación”.) mysqld_safe espera que una de las siguientes condiciones sea cierta:
El servidor y las bases de datos pueden ser encontradas en
una ruta relativa al directorio desde el que
mysqld_safe es invocado. Para
distribuciones binarias, mysqld_safe
busca bajo su directorio de trabajo los directorios
bin y data. En
distribuciones de código fuente, busca los directorios
libexec y var.
Esta condición debe cumplirse si se ejecuta
mysqld_safe desde el directorio de
instalación de MySQL (por ejemplo,
/usr/local/mysql para una distribución
binaria).
Si el servidor y las bases de datos no pueden encontrarse en
una ruta relativa al directorio de trabajo,
mysqld_safe intenta localizarlos mediante
rutas absolutas. /usr/local/libexec y
/usr/local/var son localizaciones
típicas. Las localizaciones efectivas se determinan por los
valores configurados en la distribución en el momento en
que fue creada. Deberían ser correctos si MySQL está
instalado en la localización especificada en el momento de
la configuración.
Debido a que mysqld_safe trata de encontrar el servidor y las bases de datos de manera relativa a su propio directorio de trabajo, puede instalarse una distribución binaria de MySQL en cualquier lugar, siempre y cuando se ejecute mysqld_safe desde el directorio de instalación de MySQL:
shell> cd directorio_instalacion_mysql shell> bin/mysqld_safe &
Si mysqld_safe falla, aún cuando ha sido
invocado desde el directorio de instalación de MySQL, se pueden
especificar las opciones --ledir y
--datadir para indicar los directorios en los
que el servidor y las bases de datos están dentro del sistema.
Normalmente, no se debería editar el script
mysqld_safe. En vez de ello, ha de
configurarse mysqld_safe utilizando opciones
de línea de comandos u opciones en la sección
[mysqld_safe] de un archivo de opciones
my.cnf. En casos aislados, podría ser
necesario editar mysqld_safe para que inicie
el servidor apropiadamente. No obstante, si se hace esto, la
versión modificada de mysqld_safe podría
ser sobreescrita si se actualiza la versión de MySQL en el
futuro, así que debería hacerse una copia de la versión
editada que pudiera reinstalarse.
En NetWare, mysqld_safe es un NetWare Loadable Module (NLM) que ha sido portado desde el script original de Unix. Hace lo siguiente:
Ejecuta un número de comprobaciones del sistema y de opciones.
Ejecuta comprobaciones sobre tablas
MyISAM.
Provee de una presencia en pantalla a el servidor MySQL.
Inicia mysqld, lo supervisa, y lo reinicia si termina con error.
Envía mensajes de error desde mysqld a
el archivo
en el directorio de datos.
host_name.err
Envía la salida por pantalla de
mysqld_safe hacia el archivo
en el directorio de datos.
host_name.safe
Las distribuciones de MySQL en Unix incluyen un script llamado mysql.server. Puede usarse en sistemas tales como Linux y Solaris que usan directorios de ejecución estilo System V para arrancar y parar servicios del sistema. También lo usa el Startup Item de Mac OS X para MySQL.
mysql.server puede encontrarse en el
directorio support-files bajo el directorio
de instalación de MySQL o en el árbol fuente de MySQL.
Si usa el paquete de Linux RPM para el servidor
(MySQL-server-),
el script mysql.server se instalará en el
directorio VERSION.rpm/etc/init.d con el nombre
mysql. No necesita instalarlo manualmente.
Consulte Sección 2.4, “Instalar MySQL en Linux” para más información
acerca de los paquetes RPM para Linux.
Algunos vendedores proporcionan paquetes RPM que instalan un script de instalación bajo nombres diferentes tales como mysqld.
Si instala MySQL de una distribución fuente o usando un formato binario de distribución que no instala mysql.server automáticamente, puede instalarlo manualmente. Las instrucciones se proporcionan en Sección 2.9.2.2, “Arrancar y parar MySQL automáticamente”.
mysql.server lee opciones de las secciones
[mysql.server] y [mysqld]
de los ficheros de opciones. (Para compatibilidad con versiones
anteriores, también lee las secciones
[mysql_server], aunque debe renombrar dichas
secciones como [mysql.server] cuando use
MySQL 5.0.)
mysqld_multi se utiliza para administrar diversos procesos mysqld que esperan conexiones en diferentes archivos socket en Unix y puertos TCP/IP. Puede arrancar o parar servidores, o reportar su estado actual.
El programa busca grupos llamados [mysqld#]
en my.cnf (o en el fichero nombrado por la
opción --config-file). #
puede ser cualquier entero positivo. Nos referiremos a este
número como el número del grupo de opciones en la siguiente
discusión, o GNR (N. del T.:
acrónimo en ingés). Los números de grupo distinguen grupos de
opciones de otros y se usan como argumentos para
mysqld_multi para especificar qué servidores
quiere arrancar, parar, u obtener un reporte de estatus. Las
opciones listadas en esos grupos son las mismas que usaría en
el grupo [mysqld] para arranacar
mysqld. (Consulte, por ejemplo,
Sección 2.9.2.2, “Arrancar y parar MySQL automáticamente”.) Sin embargo, cuando use
múltiples servidores es necesario que cada uno use su propio
valor para opciones tales como el fichero de socket de Unix y el
número del puerto TCP/IP. Para más información sobre qué
opciones deben ser únicas por servidor en un entorno de
múltiples sevidores, consulte
Sección 5.11, “Ejecutar más de un servidor MySQL en la misma máquina”.
Para invocar mysqld_multi, use la siguiente sintaxis:
shell> mysqld_multi [options] {start|stop|report} [GNR[,GNR]...]
start, stop, y
report indican qué operaciones desea
realizar. Puede realizar la operación designada en un único
servidor o en múltiples servidores, dependiendo de la lista
GNR que sigue al nombre de la
opción. Si no hay ninguna lista,
mysqld_multi realiza la operación para todos
los servidores en el fichero de opciones.
Cada valor GNR representa un número
de grupo de opciones o rango de números de grupo. El valor debe
ser un número al final de un nombre de grupo en el fichero de
opciones. Por ejemplo, el GNR para un
grupo llamado [mysqld17] es
17. Para especificar un rango de números,
separe el primero y último número por un guión. El valor
GNR 10-13
reperesenta los grupos desde [mysqld10] hasta
[mysqld13]. Multiples grupos o rangos de
grupos pueden especificarse en la línea de comandos, separados
por comas. No deben haber caráceteres de espacios en blanco
(espacios o tabuladores) en la lista+
GNR ; cualquier cosa después de un
carácter de espacio en blanco se ignora.
Este comando arranca un único servidor usando el grupo de
opciones [mysqld17]:
shell> mysqld_multi start 17
Este comando para diversos servidores, usando los grupos de
opciones [mysql8] y del
[mysqld10] hasta el
[mysqld13]:
shell> mysqld_multi stop 8,10-13
Para un ejemplo sobre cómo puede crear un fichero de opciones, use este comando:
shell> mysqld_multi --example
mysqld_multi soporta las siguientes opciones:
--config-file=
nombre
Especifique el nombre de un fichero de opciones alternativo.
Esto afecta a dónde mysqld_multi busca
grupos de opciones [mysqld#] . Sin esta
opción todas las opciones se leen del fichero habitual
my.cnf. La opción no afecta a dónde
mysqld_multi lee sus propias opciones,
que siempre se toman del grupo
[mysqld_multi] en el fichero habitual
my.cnf.
Muestra un fichero de opciones de ejemplo..
Muestra un mensaje de ayuda y sale.
Especifica el nombre del fichero de log. Si el fichero existe, la salida de log se añade al mismo.
El binario mysqladmin a usar para parar los servidores.
El binario mysqld a usar. Tenga en cuenta
que puede especificar mysqld_safe como el
valor para esta opción. Las opciones se pasan a
mysqld. Sólo asegúrese que tiene el
directorio donde se encuentra mysqld en
su variable de entorno PATH o fije
mysqld_safe.
Muestra información del log en el stdout en lugar del fichero de log. Por defecto, la salida va al fichero de log.
La constraseña de la cuenta MySQL a usar cuando invoque mysqladmin. Tenga en cuenta que el valor de la contraseña no es opcional para esta opción, no como en otros programas MySQL.
Desactiva los mensajes de advertencia.
Se conecta a cada servidor MySQL via puerto TCP/IP en lugar
del fichero socket Unix. (Si un fichero socket no se
encuentra, el servidor puede ejecutarse, pero accesible
sólo via puerto TCP/IP.) Por defecto, las conexiones se
hacen usando un fichero socket Unix. Esta opción afecta las
operaciones stop y
report.
El nombre de usuario de la cuenta MySQL a usar al invocar mysqladmin.
Es más detallado.
Muestra información sobre la versión y sale.
Apuntes acerca de mysqld_multi:
Asegúrese que la cuenta MySQL usada para parar los
servidores mysqld (con el programa
mysqladmin ) tienen el mismo nombre de
usuario y contraseña para cada servidor. También
asegúrese que la cuenta tiene el privilegio
SHUTDOWN. Si los servidores que quiere
administrar tienen distintos nombres de usuario o
contraseñas para las cuentas administrativas, puede querer
crear una cuenta en cada servidor que tenga el mismo nombre
de usuario y contraseña. Por ejemplo, puede inicializar una
cuenta común multi_admin ejecutando el
siguiente comando en cada servidor:
shell> mysql -u root -S /tmp/mysql.sock -proot_password
mysql> GRANT SHUTDOWN ON *.*
-> TO 'multi_admin'@'localhost' IDENTIFIED BY 'multipass';
Consulte Sección 5.6.2, “Cómo funciona el sistema de privilegios”. Tiene que hacerlo
para cada servidor mysqld. Cambie los
parámetros de conexión apropiadamente cuando se conecte a
cada uno. Tenga en cuenta que la parte de servidor del
nombre de la cuenta debe permitirle conectarse como
multi_admin desde el servidor desde el
que quiere ejecutar mysqld_multi.
La opción --pid-file es muy importante
si está usando mysqld_safe para arrancar
mysqld (por ejemplo,
--mysqld=mysqld_safe) Cada
mysqld debe tener su propio fichero con
el ID de proceso. La ventaja de usar
mysqld_safe en lugar de
mysqld es que
mysqld_safe ``guarda'' su proceso
mysqld y lo reinicia si el proceso
termina debido a una señal enviada usando kill
-9 o por otras razones, tales como un segmentation
fault. Por favor, tenga en cuenta que el script
mysqld_safe puede requerir que lo
arranque desde un lugar determinado. Esto significa que
puede tener que cambiar la localización a un cierto
directorio antes de ejecutar
mysqld_multi. Si tiene problemas
arrancando, por favor consulte el script
mysqld_safe. Compruebe especialmente las
líneas:
---------------------------------------------------------------- MY_PWD=`pwd` # Check if we are starting this relative (for the binary release) if test -d $MY_PWD/data/mysql -a -f ./share/mysql/english/errmsg.sys -a \ -x ./bin/mysqld ----------------------------------------------------------------
Consulte Sección 5.1.3, “El script de arranque del servidor mysqld_safe”. Los chequeos realizados por estas líneas deberían tener éxito, o podría encontrar problemas.
El fichero socket de Unix y el puerto TCP/IP deben ser diferentes para cada mysqld.
Puede usar la opción --user para
mysqld, pero para hacerlo debe ejecutar
el script mysqld_multi como el usuario
root en Unix. Tener la opción en el
fichero de opciones no importa; sólo obtiene una
advertencia si no es el súper usuario y los procesos
mysqld se inician bajo su propia cuenta
Unix.
Importante: Asegúrese que el directorio de datos es completamente accesible para todas las cuentas Unix con las que puedea iniciarse el proceso mysqld. No use la cuenta root de Unix para ello, a no ser que sepa lo que hace.
Más importante: Antes de usar mysqld_multi aségurese de entender el significado de las opciones que se pasan a los servidores mysqld y porqué quiere tener procesos mysqld separados. Cuidado con los peligros de usar múltipes servidores mysqld con el mismo directorio de datos. Use diferentes directorios de datos, a no ser que sepa lo que hace. Iniciar múltiples servidores con el mismo directorio de datos no proporciona mejor rendimiento en un entorno threaded. Consulte Sección 5.11, “Ejecutar más de un servidor MySQL en la misma máquina”.
El siguiente ejemplo muestra como podría inicializar un fichero
de opciones para usar con mysqld_multi. El
primer y quinto grupo [mysqld#] se ha omitido
intencionadamente del ejemplo para ilustrar que puede tener
``vacíos'' en el fichero de opciones. Esto proporciona una
mayor flexibilidad. El order en que los programas
mysqld arrancan o se paran depende del order
en que aparecen en el fichero de opciones.
# This file should probably be in your home dir (~/.my.cnf) # or /etc/my.cnf # Version 2.1 by Jani Tolonen [mysqld_multi] mysqld = /usr/local/bin/mysqld_safe mysqladmin = /usr/local/bin/mysqladmin user = multi_admin password = multipass [mysqld2] socket = /tmp/mysql.sock2 port = 3307 pid-file = /usr/local/mysql/var2/hostname.pid2 datadir = /usr/local/mysql/var2 language = /usr/local/share/mysql/english user = john [mysqld3] socket = /tmp/mysql.sock3 port = 3308 pid-file = /usr/local/mysql/var3/hostname.pid3 datadir = /usr/local/mysql/var3 language = /usr/local/share/mysql/swedish user = monty [mysqld4] socket = /tmp/mysql.sock4 port = 3309 pid-file = /usr/local/mysql/var4/hostname.pid4 datadir = /usr/local/mysql/var4 language = /usr/local/share/mysql/estonia user = tonu [mysqld6] socket = /tmp/mysql.sock6 port = 3311 pid-file = /usr/local/mysql/var6/hostname.pid6 datadir = /usr/local/mysql/var6 language = /usr/local/share/mysql/japanese user = jani
Esta sección discute el uso del MySQL Instance Manager (IM). Este es el demonio que corre en el puerto TCP/IP, el cual provee monitoreo y administración de las instancias del servidor de datos MySQL. MySQL Instance Manager está disponible para sistemas operativos basados en Unix.
MySQL Instance Manager se incluye en las distribuciones de MySQL
desde la versión 5.0.3, y puede usarse en lugar del script
mysqld_safe para arrancar y parar MySQL Server,
incluso desde una máquina
remota. MySQL Instance Manager implementa la
funcionalidad (y la mayoría de la sintaxis) del script
mysqld_multi . Una descripción más detallada
de MySQL Instance Manager a continuación.
Normalmente, el servidor de bases de datos MySQL se arranca con
el script mysql.server, que normalmente
reside en el directorio /etc/init.d/ . En
MySQL 5.0.3 este script invoca mysqlmanager
(el binario de MySQL Instance Manager ) para arrancar MySQL. (En
versiones previas de MySQL el script
mysqld_safe se usa con este propósito.) A
partir de MySQL 5.0.4 el comportamiento del script de inicio ha
cambiado de nuevo para incorporar ambos esquemas de
inicialización. En la versión 5.0.4, el scrip de arranque usa
el antiguo esquema (invocando mysqld_safe)
por defecto, pero se puede cambiar la variable
use_mysqld_safe en el script a
0 (cero) para usar el MySQL Instance Manager
para arranacar un servidor.
El comportamiento del Instance Manager en este caso depende de
las opciones dadas en el fichero de configuración de MySQL. Si
no hay fichero de configuración, el MySQL Instance Manager crea
una instancia llamada mysqld y trata de
arrancarla con los valores por defectos (compilados). Esto
significa que el IM no puede adivinar la localización de
mysqld si no está instalado en la
localización por defecto. Si ha instalado MySQL server en una
localización no estándard, debe usar un fichero de
configuración. Consulte Sección 2.1.5, “Conformación de la instalación”.
Si hay un fichero de configuración, el IM parseará el fichero
de configuración en búsqueda de las secciones
[mysqld] (P.e. [mysqld],
[mysqld1], [mysqld2],
etc.) Cada una de esas secciones especifica una instancia. Al
arrancar, el IM arrancará todas las instancias encontradas. El
IM para todas las instancias al cerrar por defecto.
Tenga en cuenta que hay una opción especial
mysqld-path (mysqld-path =
<path-to-mysqld-binary>) reconocida sólo por el
IM. Use esta variable para que IM conozca dónde reside el
binario mysqld. También debe inicializar las
opciones basedir y datadir
para el servidor.
El típico ciclo de arranque/cierre para un servidor MySQL con el MySQL Instance Manager habilitado es como sigue:
El MySQL Instance Manager se arranca con el script /etc/init.d/mysql.
El MySQL Instance Manager arranca todas las instancias y las monitoriza.
Si una instancia de un servidor cae, el MySQL Instance Manager la reinicia.
Si el MySQL Instance Manager se cierra (por ejemplo con el comando /etc/init.d/mysql stop), todas las instancias se apagan con el MySQL Instance Manager.
La comunicación con el MySQL Instance Manager se hace usando el protocolo cliente-servidor de MySQL. Con el mismo, puede conectarse al IM usando el program cliente estándard mysql , así como con la API de C MySQL. El IM soporta la versión del protocolo cliente- servidor MySQL usada por las herramientas de cliente y bibliotecas distribuidas a partir de la versión mysql-4.1.
El IM almacena su información de usuario en un fichero de
contraseñas. La localización por defecto para el fichero de
contraseñas es /etc/mysqlmanager.passwd
Las entradas para las contraseñas se parecen a las siguiente:
petr:*35110DC9B4D8140F5DE667E28C72DD2597B5C848
Para generar una entrada así debe invocarse IM con la opción
--passwd . Entonces puede redirigir la salida
a /etc/mysqlmanager.passwd para añadir un
nuevo usuario. Un comando de ejemplo a continuación.
./mysqlmanager --passwd >> /etc/mysqlmanager.passwd Creating record for new user. Enter user name: mike Enter password: <password> Re-type password: <password>
La siguiente línea se añade a
/etc/mysqlmanager.passwd:
mike:*00A51F3F48415C7D4E8908980D443C29C69B60C9
Si no hay entradas en el fichero
/etc/mysqlmanager.passwd no puede
conectarse al IM.
El MySQL Instance Manager soporta varias opciones de línea de comando. Una breve lista está disponible ejecutando el comando ./mysqlmanager --help . Los siguientes comandos están disponibles:
-?, --help
Muestra la ayuda y sale..
--log=name
Ruta al fichero de log del IM. Se usa con la opción --run-as-service.
--pid-file=name
Fichero Pid a usar. Por defecto es
mysqlmanager.pid.
--socket=name
Fichero socket a usar por las conexiones. Por defecto es
/tmp/mysqlmanager.sock.
-P, --passwd
Prepara entrada para fichero passwd y salir.
--bind-address=name
Dirección enlazada para usar en conexiones.
--port=#
Número de puerto para usar en conexiones (número de puerto por defecto, asignado por la IANA, es el 2273).
--password-file=name
Busca los usuarios y contraseñas para el Instance Manger
aquí. El fichero por defecto es
/etc/mysqlmanager.passwd.
--default-mysqld-path=name
Dónde buscar el binario para el MySQL Server si no se
proporciona un path en la sección de instancias. Ejemplo:
default-mysqld-path = /usr/sbin/mysqld.
--monitoring-interval=#
Intervalo en segundos para monitorizar instancias. El IM
tratará de conectar a cada una de las instancias
monitorizadas para comprobar si están vivas / no colgadas.
En caso de un fallo el IM realizará varios (de hecho
muchos) intentos de reiniciar la instancia. Puede desactivar
este comportamiento para instancias particulares con la
opción nonguarded en la sección de
instancia apropiada. Si no se proporciona ningún valor, se
usan 20 segundos por defecto.
--run-as-service
Demoniza y arranca el proceso ángel. El proceso ángel es simple y difícil de que falle. Reinicia el IM en caso de fallo.
--user=name
Nombre de usuario para arrancar y ejecutar mysqlmanager. Se recomienda ejecutar mysqlmanager bajo la misma cuenta de usuario usada para ejectuar el servidor mysqld.
-V, --version
Muestra información de la versión y sale.
El Instance Manager usa el fichero estándard
my.cnf. Usa la sección
[manager] para leer opciones para sí mismo y
la sección [mysqld] para crear instancias.
La sección [manager] contiene algunas de las
opciones listadas anteriormente. Un ejemplo de la sección
[manager] a continuación:
# MySQL Instance Manager options section [manager] default-mysqld-path = /usr/local/mysql/libexec/mysqld socket=/tmp/manager.sock pid-file=/tmp/manager.pid password-file = /home/cps/.mysqlmanager.passwd monitoring-interval = 2 port = 1999 bind-address = 192.168.1.5
Las secciones de instancias especifican opciones dadas a cada instancia al arrancar. La mayoría son comunes con las opciones de MySQL Server, pero hay algunas específicas para el IM:
mysqld-path =
<path-to-mysqld-binary>
La ruta al binario del servidor mysqld.
shutdown-delay = #
Número de segundos que IM debe esperar para que una
instancia se cierre. Por defecto son 35 segundos. Cuando
acaba el tiempo, IM asume que la instancia está colgada y
trata de hacer un kill -9 . Si usa InnoDB
con tablas grandes, debe incrementar este valor.
nonguarded
Esta opcion debe activarse si se quiere desactivar la funcionalidad de monitoreo de IM para una instancia concreta.
Diversas secciones de instancias de ejemplo a continuación.
[mysqld] mysqld-path=/usr/local/mysql/libexec/mysqld socket=/tmp/mysql.sock port=3307 server_id=1 skip-stack-trace core-file skip-bdb log-bin log-error log=mylog log-slow-queries [mysqld2] nonguarded port=3308 server_id=2 mysqld-path= /home/cps/mysql/trees/mysql-4.1/sql/mysqld socket = /tmp/mysql.sock4 pid-file = /tmp/hostname.pid4 datadir= /home/cps/mysql_data/data_dir1 language=/home/cps/mysql/trees/mysql-4.1/sql/share/english log-bin log=/tmp/fordel.log
Una vez que se ha inicializado un fichero de contraseñas para el MySQL Instance Manager y que el IM está ejecutándose, puede conectarse al mismo. Puede usar la herramienta cliente mysql para conectar a través de la API MySQL estándard. A continuación se muestra la lista de comandos que el MySQL Instance Manager acepta actualmente, con ejemplos.
START INSTANCE <instance_name>
Este comando intenta arrancar una instancia:
mysql> START INSTANCE mysqld4; Query OK, 0 rows affected (0,00 sec)
STOP INSTANCE <instance_name>
Esto trata de parar una instancia:
mysql> STOP INSTANCE mysqld4; Query OK, 0 rows affected (0,00 sec)
SHOW INSTANCES
Muestra los nombres de todas las intancias cargadas:
mysql> show instances; +---------------+---------+ | instance_name | status | +---------------+---------+ | mysqld3 | offline | | mysqld4 | online | | mysqld2 | offline | +---------------+---------+ 3 rows in set (0,04 sec)
SHOW INSTANCE STATUS
<instance_name>
Muestra el estado e información de la versión de la instancia seleccionada:
mysql> SHOW INSTANCE STATUS mysqld3; +---------------+--------+---------+ | instance_name | status | version | +---------------+--------+---------+ | mysqld3 | online | unknown | +---------------+--------+---------+ 1 row in set (0.00 sec)
SHOW INSTANCE OPTIONS
<instance_name>
Muestra las opciones usadas por una instancia:
mysql> SHOW INSTANCE OPTIONS mysqld3; +---------------+---------------------------------------------------+ | option_name | value | +---------------+---------------------------------------------------+ | instance_name | mysqld3 | | mysqld-path | /home/cps/mysql/trees/mysql-4.1/sql/mysqld | | port | 3309 | | socket | /tmp/mysql.sock3 | | pid-file | hostname.pid3 | | datadir | /home/cps/mysql_data/data_dir1/ | | language | /home/cps/mysql/trees/mysql-4.1/sql/share/english | +---------------+---------------------------------------------------+ 7 rows in set (0.01 sec)
SHOW <instance_name> LOG FILES
El comando poroporciona un listado de todos los ficheros de
log usados por la instancia. El conjunto resultado contiene
el path al fichero de log y al fichero de configuración
(i.e. log=/var/mysql.log), el IM trata de
adivinar su ubicación. Si IM no es capaz de localizar el
fichero de logs, debe especificarlo explícitamente.
mysql> SHOW mysqld LOG FILES; +-------------+------------------------------------+----------+ | Logfile | Path | Filesize | +-------------+------------------------------------+----------+ | ERROR LOG | /home/cps/var/mysql/owlet.err | 9186 | | GENERAL LOG | /home/cps/var/mysql/owlet.log | 471503 | | SLOW LOG | /home/cps/var/mysql/owlet-slow.log | 4463 | +-------------+------------------------------------+----------+ 3 rows in set (0.01 sec)
SHOW <instance_name> LOG {ERROR | SLOW |
GENERAL} size[,offset_from_end]
Este comando recibe una porción del fichero de log
especificado. Ya que la mayoría de usuarios están
interesados en los últimos mensajes de log, el parámetro
size define el número de bytes que
quiere recibir empezando por el final del log. Puede recibir
datos del medio del fichero de log especificando el
parámetro opcioneal offset_from_end . El
siguiente ejemplo recibe 21 bytes de datos, empezando 23
bytes desde el final del fichero de log y acabando 2 bytes
al final del fichero de log.:
mysql> SHOW mysqld LOG GENERAL 21, 2; +---------------------+ | Log | +---------------------+ | using password: YES | +---------------------+ 1 row in set (0.00 sec)
SET
instance_name.option_name=option_value
Este comando edita la configuración de la instancia
especificada para cambiar/añadir opciones a la instancia.
El IM asume que el fichero de configuración está
localizado en /etc/my.cnf. Debe
comprobar que el fichero existe y que tiene los permisos
apropiados.
mysql> SET mysqld2.port=3322; Query OK, 0 rows affected (0.00 sec)
Los cambios hecho en el fichero de configuración no
tendrán efecto hasta reiniciar el servidor MySQL. Además,
estos cambios no se guardan en la cache local de
configuración del Instance Manager hasta que se ejecuta un
comando FLUSH INSTANCES.
UNSET instance_name.option_name
Este comando elimina una opción de un fichero de configuración de una instancia.
mysql> UNSET mysqld2.port; Query OK, 0 rows affected (0.00 sec)
Los cambios hecho en el fichero de configuración no
tendrán efecto hasta reiniciar el servidor MySQL. Además,
estos cambios no se guardan en la cache local de
configuración del Instance Manager hasta que se ejecuta un
comando FLUSH INSTANCES.
FLUSH INSTANCES
Este comando fuerza a IM a releer el fichero de configuración y a refrescar estructuras internas. Este comando debe ejectuarse tras editar el fichero de configuración. Este comando no reinicia las instancias:
mysql> FLUSH INSTANCES; Query OK, 0 rows affected (0.04 sec)
Esta sección discute los siguientes tópicos de MySQL Server:
Opciones de arranque que soporta el servidor
Cómo configurar el modo SQL del servidor
Variables de sistema del servidor
Variables de estado del servidor
Cuando arranca el servidor mysqld , puede especificar opciones de programa usando cualquiera de los métodos descritos en Sección 4.3, “Especificar opciones de programa”. Los métodos más comunes son proporcionar opciones en un fichero de opciones o por línea de comandos. Sin embargo, en la mayoría de los casos es deseable asegurar que el servidor usa las mismas opciones cada vez que se ejecuta. La mejor manera de asegurarlo es listarlas en un fichero de opciones. Consulte Sección 4.3.2, “Usar ficheros de opciones”.
mysqld lee opciones de los grupos
[mysqld] y [server].
mysqld_safe lee opciones de los grupos
[mysqld], [server],
[mysqld_safe], y
[safe_mysqld].
mysql.server lee opciones de los grupos
[mysqld] y [mysql.server]
. Un servidor MySQL incrustrado normalmente lee opciones de los
grupos [server],
[embedded], y
[ ,
donde xxxxx_SERVER]xxxxx es el nombre de la
aplicación en la que el servidor está incrustado.
mysqld acepta varias opciones de línea de comando. Para una breve lista, ejecute mysqld --help. Para ver la lista completa, use mysqld --verbose --help.
La siguiente lista muestra algunas de las opciones de servidor más comunes. Opciones adicionales se describen en los siguientes links:
Opciones que afectan la seguridad: Consulte Sección 5.5.3, “Opciones de arranque para mysqld relacionadas con la seguridad”.
Opciones relacionadas con SSL: Consulte Sección 5.7.7.5, “Opciones relativas a SSL”.
Opciones de control del log binario: Consulte Sección 5.10.3, “El registro binario (Binary Log)”.
Opciones relacionadas con replicación: Consulte Sección 6.8, “Opciones de arranque de replicación”.
Opciones específicas a motores de almacenamiento
particulares: Consulte Sección 14.1.1, “Opciones de arranque de MyISAM”,
Sección 14.4.3, “Opciones de arranque de BDB”, and
Sección 15.4, “Opciones de arranque de InnoDB”.
También puede cambiar los valores de una variable de sistema del servidor usando el nombre de variable como opción, tal y como se describe más tarde en esta sección.
--help, -?
Muestra un mensaje de ayuda corto y sale. Use las opciones
--verbose y --help
simultáneamente para ver el mensaje entero.
--allow-suspicious-udfs
Este opción controla si las funciones definidas por el
usuario que sólo tienen un símbolo xxx
para la función principal pueden cargarse. Por defecto, la
opción está desactivada y sólo UDFs que tengan al menos
un símbolo auxiliar pueden cargarse. Esto previene intentos
de cargar funciones de ficheros con objetos compartidos que
no contengan UDFs legítimos. En las series de MySQL 5.0
está opción se añadió en la versión 5.0.3. Consulte
Sección 27.2.3.6, “Precauciones de seguridad en funciones definidas por usuarios”.
--ansi
Usa sintaxis estándard SQL (ANSI) en lugar de sintaxis
MySQL.Consulte Sección 1.7.3, “Ejecutar MySQL en modo ANSI”. Para un control
más preciso sobre el modo SQL del servidor, use la opción
--sql-mode.
--basedir=
path, -b
path
El path al directorio de instalación de MySQL. Todas las rutas se resuelven normalmente relativas a ésta.
--bind-address=
IP
La dirección IP a ligar.
--console
Escribe los mensajes de error por stderr
y stdout incluso si
--log-error está especificado. En
Windows, mysqld no cierra la pantalla de
consola si se usa esta opción.
--character-sets-dir=
path
El directorio donde los conjuntos de caracteres están instalados. Consulte Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”.
--chroot=
path
Pone el servidor mysqld en un entorno
cerrado durante el arranque usando la llamada de sistema
chroot(). Esta es una medida de seguridad
recomendada. Tenga en cuenta que el uso de esta opción
limita de alguna manera LOAD DATA INFILE
y SELECT ... INTO OUTFILE.
--character-set-server=
charset
Usa charset como el conjunto de
caracteres por defecto del servidor. Consulte
Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”.
--core-file
Escribe un fichero core si mysqld muere.
Para algunos sistemas, también puede especificar la opción
--core-file-size en
mysqld_safe. Consulte
Sección 5.1.3, “El script de arranque del servidor mysqld_safe”. Tenga en cuenta que en
algunos sistemas como Solaris, no obtiene un fichero core si
está usando la opción --user.
--collation-server=
collation
Usa collation como la colación
del servidor por defecto. Consulte
Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”.
--datadir=
path, -h
path
La ruta al directorio de datos.
--debug[=
debug_options],
-# [debug_options]
Si MySQL está configurado con
--with-debug, puede usar esta opción
para obtener un fichero de traza de qué está haciendo
mysqld . La cadena de caracteres
debug_options a menudo es
'd:t:o,.
Consulte Sección D.1.2, “Crear ficheros de traza”.
file_name'
(DEPRECATED)
--default-character-set=
charset
Usa charset como el conjunto de
caracteres por defecto. Esta opcíon está obsoleta a favor
de --character-set-server. Consulte
Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”.
--default-collation=
collation
Usa collation como colación por
defecto. Esta opción está obsoleta a favor de
--collation-server. Consulte
Sección 5.9.1, “El conjunto de caracteres utilizado para datos y ordenación”.
--default-storage-engine=
type
Esta opción es un sinónimo para
--default-table-type.
--default-table-type=
type
Cambia el valor por defecto de tipo de tablas. Consulte Capítulo 14, Motores de almacenamiento de MySQL y tipos de tablas.
--default-time-zone=
type
Cambia la zona horaria del servidor. Esta opción cambia la
variable global de sistema time_zone . Si
no se da esta opción, la zona horaria por defecto es la
misma que la del sistema (dada por el valor de la variable
de sistema system_time_zone.
--delay-key-write[= OFF | ON | ALL]
Coómo debe usarse la opción DELAYED
KEYS. La escritura retardada de claves provoca que
los buffers de claves no se vuelquen entre escrituras para
tablas MyISAM . OFF
desactiva escritura de claves retardada.
ON activa escritura de claves reatardada
para aquellas tablas creadas con la opción DELAYED
KEYS . ALL retarda la escritura
de claves para todas las tablas MyISAM .
Consulte Sección 7.5.2, “Afinar parámetros del servidor”. Consulte
Sección 14.1.1, “Opciones de arranque de MyISAM”.
Nota: Si asigna a esta
variable el valor ALL, no debe usar
tablas MyISAM de otro programa (como de
otro servidor MySQL o con myisamchk)
cuando una tabla esté en uso. Hacerlo provoca corrupción
de los índices.
--des-key-file=
file_name
Lee las claves por defecto usadas por
DES_ENCRYPT() y
DES_DECRYPT() de este fichero.
--enable-named-pipe
Activa el soporte para named pipes. Esta opción se aplica sólo en Windows NT, 2000, XP y 2004, y sólo pueden usarse con servidores mysqld-nt y mysqld-max-nt que soporten conexiones para named pipes.
--exit-info[=
flags], -T
[flags]
Esta es una máscara de bits de diferentes flags y que puede usar para debugar el servidor mysqld . No use esta opción a no ser que sepa exactamente lo que hace!
--external-locking
Activa bloqueo del sistema. Tenga en cuenta que si usa esta
opción en un sistema en que lockd no
funcione plenamente (comom en Linux), es fácil para
mysqld caer en un deadlock. Esta opción
préviamente era --enable-locking.
Nota: Si usa esta opción
para permitir actualizaciones en tablas
MyISAM en cualquier proceso MySQL, debe
asegurarse que las siguiente condiciones se satisfacen:
No debe usar la caché de consultas para consultas que usen tablas actualizadas por otros procesos.
No debe usar --delay-key-write=ALL o
DELAY_KEY_WRITE=1 en ninguna tabla
compartida.
La forma más fácil de asegurar esto es usar siempre
--external-locking junto a
--delay-key-write=OFF
--query-cache-size=0.
(Esto no se hace por defecto ya que en muchas configuraciones es útil tener una mezcla de las opciones anteriores.)
--flush
Escribe todos los cambios a disco después de cada comando SQL. Normalmente MySQL escribe todos los cambios en disco después de cada comando SQL y deja al sistema operativo la sincronización con el disco. Consulte Sección A.4.2, “Qué hacer si MySQL sigue fallando (crashing)”.
--init-file=
file
Lee comandos SQL de este fichero al arrancar. Cada comando debe ser de una sola línea y no debe incluir comentarios.
--innodb-safe-binlog
Añade garantía de consistencia entre el contenido de las
tablas InnoDB y el log binario. Consulte
Sección 5.10.3, “El registro binario (Binary Log)”.
--language=
lang_name, -L
lang_name
Mensajes de error del cliente en el idioma dado.
lang_name puede darse como el
nombre del idioma o como la ruta al directorio donde los
ficheros de idioma están instalados. Consulte
Sección 5.9.2, “Escoger el idioma de los mensajes de error”.
--large-pages
Algunas arquitecturas hardware o de sistemas operativos soportan paginación de memoria mayor a la que hay por defecto (normalmente 4 KB). La implementación de este soporte depende del hardware subyacente y del SO. Aplicaciones que necesiten mucha memoria pueden obtener mejoras de rendimiento usando páginas grandes gracias a reducir los fallos en el Translation Lookaside Buffer (TLB).
Actualmente, MySQL soporta sólo implementaciones en Linux de soporte para páginas grandes (que se llama HugeTLB en Linux). Tenemos planes de extender este soporte a FreeBSD, Solaris y posiblemente otras plataformas.
Antes de poder usar páginas grandes en Linux, es necesario
configurar el pool de memoria de HugeTLB. Como referencia,
consulte el fichero hugetlbpage.txt en
la fuente del kernel Linux.
Esta opción está desactivada por defecto. Se añadió en MySQL 5.0.3.
--log[=
file], -l
[file]
Log de conexiones y consultas en este fichero. Consulte
Sección 5.10.2, “El registro general de consultas”. Si no especifica un nombre de
fichero, MySQL usa
como nombre de fichero.
host_name.log
--log-bin=[
file]
El fichero de logs binario. Loguea todas las consultas que
cambian datos en este fichero. Se usa para copias de
seguridad y replicación. Consulte
Sección 5.10.3, “El registro binario (Binary Log)”. Se recomienda especificar un
nombre de fichero (consulte Sección A.8.4, “Cuestiones abiertas en MySQL” para
la razón) en caso contrario MySQL usa
como el nombre base para el fichero de logs.
host_name-bin
--log-bin-index[=
file]
El fichero índice para log binario. Consulte
Sección 5.10.3, “El registro binario (Binary Log)”. Si no especifica un nombre de
fichero, y si no especifica uno en
--log-bin, MySQL usa
como el nombre de fichero.
host_name-bin.index
--log-bin-trust-routine-creators[={0|1}]
Sin argumento o un argumento de 1, esta opción inicializa
la variable de sistema
log_bin_trust_routine_creators a 1. Con
un argumento de 0, esta opción actualiza la variable de
sistema a 0..
log_bin_trust_routine_creators afecta
cómo MySQL fuerza las restricciones en la creación de
rutinas almacenadas. Consulte
Sección 19.3, “Registro binario de procedimientos almacenados y disparadores”.
Esta opción se añadió en MySQL 5.0.6.
--log-error[=
file]
Mensajes de error y de arranque en este fichero. Consulte
Sección 5.10.1, “El registro de errroes (Error Log)”. Si no especifica un nombre de
fichero, MySQL usa
como nombre de fichero. Si el nombre de fichero no tiene
extensión, una extensión host_name.err.err se
añade al nombre.
--log-isam[=
file]
Loguea todos los cambios
ISAM/MyISAM en este
fichero (usado sólo al debugar
ISAM/MyISAM).
(DEPRECATED)
--log-long-format
Loguea información extra a cualquiera de los logs que haya
activados (log de actualización, log de consultas lentas y
log binario). Por ejemplo, se añade el nombre de usuario y
tiempo de la consulta para todas las consultas. Esta opción
está obsoleta en MySQL 5.0, y ahora representa el
comportamiento por defecto para logueo. (Consulte la
descripción para --log-short-format.) La
opción --log-queries-not-using-indexes
está disponible para los propósitos de loguear consultas
que no usan índices en el log de consultas lentas
--log-queries-not-using-indexes
Si usa esta opción con
--log-slow-queries, las consultas que no
usan índices también se loguean en el log de consultas
lentas. Consulte Sección 5.10.4, “El registro de consultas lentas (Slow Query Log)”.
--log-short-format
Loguea menos información en cualquiera de los logs activados (log de actualización, log binario y log de consultas lentas). Por ejemplo, el nombre de usuario y el tiempo en que se produce la consulta no se guardan para las consultas.
--log-slow-admin-statements
Loguea comandos lentos administrativos tales como
OPTIMIZE TABLE, ANALYZE
TABLE, y ALTER TABLE en el log
de consultas lentas.
--log-slow-queries[=
file]
Loguea todas las consultas que han tardado más de
long_query_time segundos en ejecutarse en
este fichero.. See Sección 5.10.4, “El registro de consultas lentas (Slow Query Log)”.
Consulte las descripciones de las opciones
--log-long-format y
--log-short-format para más detalles.
--log-warnings, -W
Muestra advertencias tales como Aborted
connection... en el log de errores. Se recomienda
activar esta opción, por ejemplo, si usa replicación
(obtiene mayor información acerca de lo que está
ocurriendo, tal como mensajes acerca de fallos de red y
reconexiones). Esta opción está activada por defecto en
MySQL 5.0; para desactivarla, use
--skip-log-warnings. Las conexiones
abortadas no se loguean en el log de errores a no ser que el
valor sea mayor que 1. Consulte
Sección A.2.10, “Errores de comunicación y conexiones abortadas”.
--low-priority-updates
Operaciones que modifiquen la tabla
(INSERT, REPLACE,
DELETE, UPDATE) tiene
una prioridad inferior a las selecciones. También puede
hacerse vía {INSERT | REPLACE | DELETE | UPDATE}
LOW_PRIORITY ... para bajar la prioridad de sólo
una consulta, o con SET
LOW_PRIORITY_UPDATES=1 para cambiar la prioridad
en un thread. Consulte Sección 7.3.2, “Cuestiones relacionadas con el bloqueo (locking) de tablas”.
--memlock
Bloquea el proceso mysqld en memoria.
Funciona con sistemas tales como Solaris que soportan la
llamada de sistema mlockall() . Esto
puede ser útil si tiene un problema en el que el sistema
operativo cause que mysqld realice swap
en el disco. Tenga en cuenta que el uso de esta operación
requiere que ejecute el servidor como
root, lo que normalmente no es una buena
idea por razones de seguridad.
--myisam-recover
[=
option[,option...]]]