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
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.