De manera predeterminada, el servidor utiliza los valores predefinidos para las variables de configuración. Si estos valores coinciden con nuestras necesidades no tendremos que hacer nada, pero si queremos personalizar algunos valores podremos hacerlo utilizando las opciones de ejecución.
Una de las circunstancias habituales es la necesidad de modificar las ubicaciones de las carpetas y de los archivos. Por ejemplo, en Windows se asume c:\mysql como carpeta de instalación del servidor. Si lo instalamos en otro sitio tendremos que especificar la opción –basedir, en caso contrario, el servidor no se iniciará. Lo mismo sucedería si modificamos la ubicación de la carpeta de datos (c:\mysql\data), en tal caso tendríamos que especificar la opción –datadir.
La ubicación de las carpetas es sólo una de las razones por las precisamos incluir opciones en el inicio del servidor. También se pueden personalizar otros valores, por ejemplo, la cantidad máxima de conexiones simultáneas aceptadas o el tamaño de los búferes y del caché.
Para modificar la configuración y el funcionamiento del servidor debemos incluir opciones en el inicio del servidor o utilizar un archivo de opciones (my.ini y my.cnf) en el que se incluirán las opciones para simplificar la tarea de inicio. Véase cómo utilizar los archivos de opciones en la sección Uso de las opciones de los comandos, más adelante, en este mismo blog.
¿my.ini o my.cnf? o ¿my.ini y my.cnf? Ambos archivos son válidos para incluir nuestras opciones, pero en cierta forma uno de los dos es redundante. WinMySQLAdmin sólo edita el archivo my.ini. Ésta puede ser una razón por la que en un entorno Windows nos decantemos por este archivo y nos olvidemos de my.cnf. |
Opciones del servidor
Para conocer la lista completa de opciones soportadas por el servidor se puede utilizar el siguiente comando:
shell> mysqld --help
Al ejecutar el comando se podrá comprobar la gran cantidad de opciones configurables. Normalmente, los valores predeterminados son adecuados para el uso estándar. Aquí simplemente mencionaremos las que normalmente tendremos que adaptar o utilizar:
- –basedir=rutadeacceso, -b rutadeacceso: la ruta de acceso a la carpeta de instalación de MySQL. Todas las rutas de acceso normalmente son relativas a esta carpeta.
- –console: escribe los mensajes de log a stderr/stdout, incluso aunque se haya especificado –log-error.
- –datadir=rutadeacceso, -d rutadeacceso: la ruta de acceso a la carpeta de datos de MySQL.
- –debug[=opciones-debug], -# [opciones-debug]: si MySQL está configurado con –with-debug, con esta opción se puede obtener un archivo con el seguimiento de lo que está haciendo mysqld. Frecuentemente, opciones-debug toma estos valores 'd:t:o,nombre-archivo'.
- –enable-named-pipe: habilita el soporte para conductos nominados. Sólo para sistemas Windows NT, 2000 y XP y para servidores MySQL mysql-nt y mysqld-max-nt.
- –flush: envía los cambios a disco después de cada sentencia SQL.
- –init-file=archivo: al inicio, lee sentencias SQL desde el archivo indicado. Cada sentencia debe estar en una única línea y no debe tener comentarios.
- –log[=archivo], -l [archivo]: registra en el archivo las conexiones y las consultas. Si no se especifica el nombre del archivo, asume nombreequipo.log.
- n –log-bin[=archivo]: archivo binario; se registran todas las consultas que modifican a las bases de datos. Si no se especifica el nombre del archivo, asume nombreequipo-bin.
- n –bin-index[=archivo]: archivo de índice para los archivos binarios. Si no se especifica el nombre del archivo, asume nombreequipo-bin.index.
- –log-error[=archivo]: se registran los errores y los mensajes de inicio. Si no se especifica el nombre del archivo, asume nombreequipo.err.
- –log-isam[=archivo]: se registran los cambian a ISAM/MyISAM.
- –log-long-format: indica que se registre información adicional en los archivos de log que estén activados. Por ejemplo, se registra el nombre de usuario y la fecha y hora de la consulta.
- –log-short-format: indica que se registre menos información en los archivos de log que estén activados. Por ejemplo, no se registra el nombre de usuario y la fecha y hora de la consulta.
- –log-warnings, -W: imprime advertencias en el archivo de log de errores.
- –memlock: bloquea en memoria el proceso mysqld. Funciona en sistemas que soportan mlockall(), como Solaris.
- –safe-mode: no utiliza algunas fases de optimización.
- –safe-show-databases: con esta opción, la sentencia SHOW DATABASES visualiza sólo los nombres de las bases de datos en las que el usuario tiene algún tipo de privilegio.
- –shared-memory: habilita las conexiones de memoria compartida para clientes locales. Sólo para Windows.
- –skip-concurrent-insert: desactiva la posibilidad de realizar consultas e inserciones simultáneas en tablas MyISAM. Para utilizar sólo en caso de búsqueda y resolución de fallos.
- –skip-grant-tables: esta opción no utiliza el sistema de privilegios. Por lo tanto, se le da acceso completo a todos. Una opción para utilizar sólo para despejar casuísticas en caso de fallos. Se restablece con FLUSH PRIVILEGES.
- –tmpdir=rutadeacceso, -t rutadeacceso: la ruta de acceso para la carpeta en donde se crearán los archivos temporales.
- –user={nombreusuario | usuarioid}, -u {nombreusuario | usuarioid}: ejecuta el servidor como el usuario indicado.
Por ejemplo, para indicar una carpeta de instalación personalizada y activar los archivos de registros podemos incluir estas líneas en el archivo de opciones bajo el grupo [mysqld]:
[mysqld] basedir=D:/mysql50 log log-bin log-slow-queries
Si el servidor no se inicia: en este caso se deberá examinar el archivo de registro de errores. El archivo se encuentra dentro de la carpeta de datos y se denomina nombreequipo.err. En Windows, esos errores se listan también por consola si el servidor tiene la opción –console. |