Hosting guebs

Capítulo 4. Usar los programas MySQL

Tabla de contenidos

4.1. Panorámica de programas MySQL
4.2. Invocar programas MySQL
4.3. Especificar opciones de programa
4.3.1. Usar opciones en la línea de comandos
4.3.2. Usar ficheros de opciones
4.3.3. Usar variables de entorno para especificar opciones
4.3.4. Utilización de opciones para establecer variables de programa

Este capítulo proporciona una descripción concisa de las utilidades de línea de comandos provistas por MySQL AB y de las opciones que se puden suministrar al ejecutarlas. La mayoría de los programas tienen opciones que son propias de su operación, pero la sintaxis para especificarlas es idéntica para todos. En los capítulos posteriores se brinda una descripción más detallada de cada utilidad, incluyendo las opciones que reconoce cada una

MySQL AB también suministra tres programas con interfaz gráfica de usuario para utilizar con el servidor de bases de datos MySQL:

4.1. Panorámica de programas MySQL

MySQL AB proporciona varios tipos de programas:

  • El servidor MYSQL y los scripts de inicio del servidor:

    • mysqld es el servidor MySQL

    • mysqld_safe, mysql.server, y mysqld_multi son scripts de inicio del servidor

    • mysql_install_db inicializa el directorio "data" y las bases de datos que MySQL instala por defecto.

    Estos programas son comentados posteriormente en Capítulo 5, Administración de bases de datos.

  • Programas cliente que acceden al servidor:

    • mysql es un programa cliente que porporciona una interfaz de linea de comandos para ejecutar sentencias SQL en modo interactivo o por lotes.

    • mysqladmin es un cliente para administración.

    • mysqlcheck ejecuta operaciones de mantenimiento de tablas.

    • mysqldump y mysqlhotcopy son utilidades para copia de respaldo.

    • mysqlimport realiza importación de ficheros de datos.

    • mysqlshow muestra información relativa a tablas y bases de datos.

    Estos programas son comentados posteriormente en Capítulo 8, Programas cliente y utilidades MySQL.

  • Programas que operan independientemente del servidor:

    • myisamchk ejecuta operaciones de mantenimiento de tablas.

    • myisampack genera tablas comprimidas, de sólo lectura.

    • mysqlbinlog es una herramienta para procesar archivos de registro binario (binary logs).

    • perror informa el significado de un código de error.

    myisamchk es comentado posteriormente en Capítulo 5, Administración de bases de datos. Los demás programas tienen su descripción en Capítulo 8, Programas cliente y utilidades MySQL.

La mayoría de las distribuciones de MySQL incluyen todos los programas mencionados, con excepción de los que son específicos de cada plataforma. (Por ejemplo, los scripts de inicio de servidor no son necesarios en Windows). Otra excepción es que las distribuciones RPM son más especializadas. Existe una RPM para el servidor, otra para los programas cliente, etc. En el caso de no hallar uno o más programas, consulte Capítulo 2, Instalar MySQL para ver información sobre los tipos de distribuciones y su contenido. Es posible que se necesite realizar una instalación adicional.

4.2. Invocar programas MySQL

Para invocar un programa MySQL desde la línea de comandos (desde el shell o el intérprete de comandos), ingrese el nombre del programa seguido de cualquier opción u otro argumento necesario para indicarle al programa la tarea que se desea llevar a cabo con él. Los siguientes comandos muestran algunos ejemplos de cómo invocar un programa. “shell>” representa el prompt del intérprete de comandos, no es parte de lo que debe tipearse. El prompt que en definitiva se verá depende del intérprete de comandos utilizado. Algunos prompts típicos son: $ para sh o bash, % para csh or tcsh, y C:\> para el command.com o cmd.exe de Windows.

shell> mysql test
shell> mysqladmin extended-status variables
shell> mysqlshow --help
shell> mysqldump --user=root personnel

Los argumentos precedidos por guiones son las opciones del programa. Estas opciones, habitualmente, especifican el tipo de conexión al servidor o afectan el modo de operación del programa. Las opciones tienen una sintaxis que se describe en Sección 4.3, “Especificar opciones de programa”.

Los argumentos que no son opciones (que no estan precedidos por guiones) suministran información adicional al programa. Por ejemplo, el programa mysql interpreta que el primer argumento no opción proporcionado es el nombre de la base de datos a utilizar, de forma que el comando mysql test indica que se desea emplear la base de datos test.

Las secciones siguientes, donde se describe individualmente cada programa, informan las opciones que es posible utilizar y el significado de los argumentos no opción adicionales.

Algunas opciones son comunes a un número de programas. Las más corrientes son --host, --user, y --password, las cuales especifican parámetros de conexión. Indican el ordenador host donde se está ejecutando el servidor de bases de datos MySQL, y el nombre de usuario y contraseña de la cuenta MySQL empleada para acceder. Estas tres opciones son aplicables a todos los programas cliente MySQL, permiten especificar el servidor al cual conectarse y qué cuenta usar para ello.

Es posible que necesite invocar a los programas MySQL utilizando la ruta al directorio bin en el que están instalados. Este es el caso más probable si obtiene un mensaje de error “program not found” cada vez que se intenta ejecutar un programa MySQL desde cualquier directorio que no sea bin. A fin de hacer más conveniente el uso de MySQL, puede agregar la ruta al directorio bin dentro de la variable de entorno PATH. Entonces, para ejecutar un programa sólo se necesitará ingresar su nombre, no la ruta completa.

Consulte la documentación específica de su intérprete de comandos para obtener instrucciones sobre cómo establecer el valor de PATH, dado que la sintaxis para establecer variables de entorno es propia de cada uno.

4.3. Especificar opciones de programa

Al ejecutar programas MySQL se les pueden indicar opciones en varias formas:

  • En la línea de comandos, a continuación del nombre del programa. Este es el modo más común para opciones que se aplican a una ejecución específica del programa.

  • En un fichero de opciones, que el programa lee al iniciarse. Esto es lo acostumbrado para opciones que se desea que el programa use cada vez que se ejecuta.

  • En variables de entorno. Esto es útil para opciones que se desean aplicar cada vez que el programa se ejecuta, si bien en la práctica, para este propósito, es más común emplear ficheros de opciones. En (Sección 5.11.2, “Ejecutar varios servidores en Unix” se expone una situación donde las variables de entorno pueden ser muy útiles. Allí, se describe una práctica técnica que usa estas variables para indicar el número de puerto TCP/IP y el fichero socket de Unix, tanto para los programas cliente como para el servidor.

Los programas MySQL determinan qué opciones les fueron suministradas examinando en primer lugar las variables de entorno, luego los ficheros de opciones, y, finalmente, la línea de comandos. Si una opción se especifica más de una vez, la última tiene precedencia. Esto significa que las variables de entorno tienen la prioridad más baja, y la línea de comandos, la más alta.

Se puede aprovechar la forma en que los programas MySQL procesan las opciones si se especifican las opciones por defecto de un programa dentro de un fichero de opciones. De ese modo, no es necesario tipearlas cada vez que se ejecuta el programa, pero los valores por defecto indicados pueden ser reemplazados por otros que se incluyan en la línea de comandos

4.3.1. Usar opciones en la línea de comandos

Las opciones de programa indicadas en la línea de comandos están sujetas a estas reglas:

  • Las opciones se colocan luego del nombre del comando.

  • Una opción comienza con uno o dos guiones, dependiendo de si se ha utilizado la forma corta o larga de su nombre. Muchas opciones permiten ambas formas. Por ejemplo, -? y --help son, respectivamente, las formas corta y larga de la opción que solicita a un programa MySQL que muestre un mensaje de ayuda.

  • Los nombres de opciones son case sensitive. Tanto -v como -V son correctos pero tienen distinto significado. (Corresponden a la forma corta de las opciones --verbose y --version.)

  • Algunas opciones aceptan que se indique un valor a continuación del nombre. Por ejemplo, -h localhost o --host=localhost indican a un programa cliente MySQL el servidor de bases de datos MySQL a utilizar. El valor de la opción le dice al programa el nombre del ordenador host donde el servidor de bases de datos MySQL se está ejecutando.

  • Los nombres de opción largos se separan del valor asignado (si se les asigna uno) con un signo '='. Para un nombre de opción corto, el valor puede escribirse inmediatamente a continuación de la letra de la opción, o puede haber un espacio entre ambos. (-hlocalhost y -h localhost son equivalentes.) Una excepción a esta regla es la opción para suministrar la contraseña MySQL. Esta opción puede escribirse en forma larga como --password=pass_val o como --password. En el último caso, donde no se incluyó la contraseña, el programa la solicitará. También puede emplearse una forma corta como -ppass_val o como -p. Sin embargo, en la forma corta, si se suministra una contraseña debe figurar a continuación de la letra de opción sin espacios intermedios. La razón de esto es que, si hay un espacio a continuación de la letra de opción, el programa no tiene modo de saber si el argumento que sigue es la contraseña o alguna otra clase de argumento. Por esto, los siguientes dos comandos tienen significados completamente diferentes:

    shell> mysql -ptest
    shell> mysql -p test
    

    El primer comando le dice a mysql que utilice la contraseña test, pero no indica una base de datos por defecto. El segundo le dice a mysql que solicite la contraseña y que utilice test como base de datos por defecto.

Algunas opciones controlan comportamientos que deben habilitarse o deshabilitarse. Por ejemplo, el cliente mysql soporta una opción --column-names que determina si se mostrará o no una fila con los nombres de cada columna al principio de los resultados de una consulta. Por defecto, esta opción se encuentra habilitada. Sin embargo, en algunos casos se podria desear que permanezca inhabilitada, por ejemplo cuando la salida producida por mysql debe ser enviada a otro programa que espera sólo datos y no una linea inicial de encabezados.

Para deshabilitar los nombres de columnas, se especifica la opción empleando cualquiera de estas formas:

--disable-column-names
--skip-column-names
--column-names=0

Los prefijos --disable y --skip y el sufijo =0 tienen el mismo efecto: deshabilitar la opción.

El modo “enabled” (habilitado) de la opción puede ser especificado en cualquiera de estas formas:

--column-names
--enable-column-names
--column-names=1

Si una opción se antecede con el prefijo --loose, el programa no terminará con un error si no es capaz de reconocer la opción, en lugar de ello emitirá una advertencia:

shell> mysql --loose-no-such-option
mysql: WARNING: unknown option '--no-such-option'

El prefijo --loose puede ser útil cuando se ejecutan programas pertenecientes a múltiples versiones de MySQL en el mismo ordenador. Es particularmente útil cuando se utiliza un fichero de opciones. Una opción que puede no ser reconocida por todas las versiones de un programa, se antecede con el prefijo --loose (o bien loose en el caso de un fichero de opciones). Aquellas versiones de un programa que no reconozcan la opción emitirán una advertencia y la ignorarán. Nota: Esta estrategia requiere que las versiones involucradas sean la 4.0.2 o posteriores, dado que antes de esa versión no existía el prefijo --loose.

Otra opción que puede ser ocasionalmente útil con mysql es -e o --execute, la cual se utiliza para enviar sentencias SQL al servidor. Las sentencias deben estar colocadas entre comillas (dobles o simples). No obstante, si se desea incluir dentro de la consulta valores colocados entre comillas, habría que emplear comillas dobles para delimitar la consulta y simples para los valores en su interior. Cuando se utiliza esta opción, mysql retorna al prompt del intérprete de comandos inmediatamente después de ejecutar la sentencia.

Por ejemplo, para obtener una lista de cuentas de usuario, puede hacerse lo siguiente:

shell> mysql -u root -p -e "SELECT User, Host FROM user" mysql
Enter password: ******
+------+-----------+
| User | Host      |
+------+-----------+
|      | gigan     |
| root | gigan     |
|      | localhost |
| jon  | localhost |
| root | localhost |
+------+-----------+
shell>

Observe que el nombre de la base de datos mysql fue pasado como un argumento separado. Sin embargo, la misma consulta se hubiera ejecutado indicando mysql -u root -p -e "SELECT User, Host FROM mysql.user" en el intérprete de comandos.

De este modo se pueden ejecutar múltiples sentencias SQL, si se las separa con punto y coma:

shell> mysql -u root -p --execute="SELECT Name FROM Country WHERE Name LIKE 'AU%';SELECT COUNT(*) FROM City" world
Enter password: ******
+-----------+
| Name      |
+-----------+
| Australia |
| Austria   |
+-----------+
+----------+
| COUNT(*) |
+----------+
|     4079 |
+----------+

Observe que la forma larga (--execute) debe ser seguida por un signo igual(=).

La opción -e puede usarse del mismo modo para pasar comandos al cliente de administración para MySQL Cluster ndb_mgm. Consulte Sección 16.3.6, “Apagado y encendido seguros” para ver un ejemplo.

4.3.2. Usar ficheros de opciones

Los programas MySQL pueden leer opciones de inicio desde ficheros de opciones (también llamados a veces ficheros de configuración). Los ficheros de opciones porporcionan una forma conveniente de especificar opciones comúnmente usadas sin que sea necesario ingresarlas en la línea de comandos cada vez que se ejecuta el programa.

Los siguientes programas soportan ficheros de opciones: myisamchk, myisampack, mysql, mysql.server, mysqladmin, mysqlbinlog, mysqlcc, mysqlcheck, mysqld_safe, mysqldump, mysqld, mysqlhotcopy, mysqlimport, y mysqlshow.

Nota: el uso de ficheros de opciones con programas de MySQL Cluster se cubre en Sección 16.4, “Configuración de MySQL Cluster”.

En Windows, los programas MySQL leen sus opciones de inicio en los siguientes ficheros:

FicheroContenido
WINDIR\my.iniOpciones globales
C:\my.cnfOpciones globales
INSTALLDIR\my.iniOpciones globales
defaults-extra-fileEl archivo especificado con --defaults-extra-file=ruta, si existe.

WINDIR representa la ubicación del directorio Windows. Por lo general, es C:\WINDOWS o C:\WINNT. Se puede determinar la localización exacta a través del valor de la variable de entorno WINDIR utilizando el siguiente comando:

C:\> echo %WINDIR%

INSTALLDIR representa el directorio de instalación de MySQL. Este es generalmente C:\PROGRAMDIR\MySQL\MySQL 5.0 Server, donde PROGRAMDIR representa el directorio de programas (usualmente Archivos de Programa en versiones de Windows en español), donde se instaló MySQL 5.0 mediante los asistentes de instalación y configuración. Consulte Sección 2.3.5.14, “Dónde está el fichero my.ini”.

En Unix, los programas MySQL leen sus opciones de inicio en los siguientes ficheros:

FicheroContenido
/etc/my.cnfOpciones globales
$MYSQL_HOME/my.cnfOpciones específicas del servidor
defaults-extra-fileEl archivo especificado con --defaults-extra-file=ruta, si existe.
~/.my.cnfOpciones específicas del usuario

MYSQL_HOME es una variable de entorno que contiene la ruta al directorio donde reside el fichero my.cnf específico del servidor. (Este era DATADIR anteriormente a MySQL versión 5.0.3.)

Si MYSQL_HOME no tiene un valor establecido y hay un fichero my.cnf en DATADIR y no hay un fichero my.cnf en BASEDIR, mysqld_safe establece el valor de MYSQL_HOME en DATADIR. De otro modo, si MYSQL_HOME no tiene un valor establecido y no hay un fichero my.cnf en DATADIR, entonces mysqld_safe establece el valor de MYSQL_HOME en BASEDIR.

Generalmente es /usr/local/mysql/data para una instalación binaria o /usr/local/var para una instalación de código fuente. Observe que se trata de la ubicación del directorio de datos que se indicó al momento de la configuración, no de la especificada con --datadir cuando se inicia mysqld. El uso de --datadir no tiene efecto sobre el lugar donde el servidor busca los ficheros de opciones, porque esta búsqueda se produce antes de procesar cualquier argumento de línea de comandos.

MySQL busca ficheros de opciones exactamente en el orden descripto en la tabla y lee cualquiera que exista. Si se desea utilizar un fichero de opciones que no existe, se lo debe crear con un editor de texto plano. De existir múltiples ficheros de opciones, las opciones leidas en último lugar prevalecen sobre las anteriores.

Nota: En plataformas Unix, MySQL ignorará todo fichero de configuración que tenga permiso world-writable (esto es, modificable por todos los usuarios). Esto ha sido implementado intencionalmente como medida de seguridad.

Cualquier opción en formato de nombre largo que pueda suministrarse en la línea de comandos al ejecutar un programa MySQL puede ser colocada también en un fichero de opciones. Para obtener la lista de opciones disponibles para un programa determinado, el mismo debe ejecutarse con la opción --help.

La sintaxis para especificar opciones en un fichero es similar a cuando se hace en la línea de comandos, con la excepción de que se deben omitir los dos guiones iniciales.Por ejemplo, --quick o --host=localhost en la linea de comandos debería especificarse como quick o host=localhost en un fichero de opciones. Para indicar una opción de la forma --loose-opt_name en un fichero, debe escribirse como loose-opt_name.

Las lineas vacías de los ficheros de opciones se ignoran. Las líneas no vacías pueden tomar cualquiera de las siguientes formas:

  • #comentario, ;comentario

    Las líneas de comentario comienzan con '#' o ';'. Un comentario '#' puede aparecer incluso en el medio de una linea.

  • [grupo]

    grupo es el nombre del programa o grupo para el cual se desea establecer opciones. Después de una linea de este tipo, cualquier linea opción o set-variable se aplicará a ese grupo hasta el final del fichero o hasta que se encuentre otra línea grupo.

  • opción

    Equivale a --opción en la línea de comandos.

  • opción=valor

    Equivale a --opción=valor en la línea de comandos. En un fichero de opciones está permitido colocar espacios a ambos lados del carácter '=', algo que no es posible en la línea de comandos. En MySQL 5.0 se puede encerrar el valor entre comillas simples o dobles. Esto es útil si el valor contiene un carácter como comentario '#' o espacios en blanco.

Los espacios en blanco sobrantes son automáticamente eliminados de los nombres de opciones y valores. se pueden utilizar las secuencias de escape '\b', '\t', '\n', '\r', '\\', y '\s' al especificar el valor de una opción si es necesario representar los caracteres backspace, tab, salto de linea, retorno de carro y espacio.

En Windows, si el valor de una opción representa una ruta a un directorio o un fichero, se debería especificar el valor utilizando '/' en lugar '\' como separador. Si se emplea '\', debe duplicarse y poner '\\', puesto que '\' es el caracter de escape en MySQL.

Si el nombre de un grupo es igual que el de un programa, las opciones en el grupo se aplicarán específicamente a ese programa.

El grupo de opciones [client] es leido por todos los programas clientes (pero no por mysqld). Esto permite especificar opciones aplicables a todos los clientes. Por ejemplo, [client] es el grupo perfecto para indicar la contraseña que se utiliza para conectarse al server. (Pero es necesario asegurarse que el fichero de opciones es accesible para lectura y escritura solamente por Usted, de modo que otras personas no puedan conocer la contraseña). Una opción no debe colocarse en el grupo [client] a menos que sea reconocida por todos los programas cliente que se utilizan. Los programas que no la soporten terminarán después de mostrar un mensaje de error si se los intenta ejecutar.

A partir de MySQL 5.0.4 en la serie 5.0, es posible emplear directivas !include en los ficheros de opciones para incluir ficheros específicos y !includedir para incluir directorios Por ejemplo, para incluir el fichero /home/mydir/myopt.cnf, se puede usar lo siguiente:

!include /home/me/myopt.cnf

Para buscar en el directorio /home/mydir todos los ficheros con extensión .cnf y leerlos como ficheros de opciones, se debería utilizar:

!includedir /home/mydir

Observe que estas opciones son específicas de cada sección. Por ejemplo, suponga que fuera a utilizar en my.cnf algo como lo siguiente:

[mysqld]
!include /home/mydir/myopt.cnf

En ese caso, el fichero myopt.cnf sólo sería procesado por el servidor, y la directiva !include sería ignorada por cualquier aplicación cliente. Sin embargo, si empleara:

[mysqldump]
!includedir /home/mydir/my-dump-options

entonces el directorio /home/mydir/my-dump-options sería verificado en busca de ficheros de opciones con extensión .cnf únicamente por mysqldump y no por el servidor o por otras aplicaciones cliente.

Nota: En la actualidad, cualquier fichero que deba ser encontrado e incluido al usar la directiva !includedir debe tener en su nombre la extensión .cnf. En Windows, esta directiva también verifica en busca de ficheros con extensión .ini.

En la versión 4.0.14 de MySQL y posteriores, si se desea crear un grupo de opciones que deba ser leido únicamente por una versión específica de mysqld, se puede hacer dando a los grupos de opciones nombres como los siguientes: [mysqld-4.0], [mysqld-4.1], [mysqld-5.0], y así sucesivamente. El siguiente grupo indica que la opción --new debería ser aplicada sólo por servidores de bases de datos MySQL versión 5.0.x:

[mysqld-5.0]
new

Aquí hay un fichero de opciones globales típico:

[client]
port=3306
socket=/tmp/mysql.sock

[mysqld]
port=3306
socket=/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M

[mysqldump]
quick

El fichero de opciones anterior utiliza la sintaxis var_name=value para las líneas que establecen los valores de las variables key_buffer_size y max_allowed_packet.

Este es un fichero de opciones de usuario típico:

[client]
# El siguiente password se enviará a todos los clientes MySQL estándar
password="my_password"

[mysql]
no-auto-rehash
connect_timeout=2

[mysqlhotcopy]
interactive-timeout

Si tiene una distribución de código fuente, podrá encontrar ficheros de opciones de ejemplo llamados my-xxxx.cnf en el directorio support-files. Si tiene una distribución binaria, busque en el directorio support-files bajo el directorio de instalación de MySQL. En Windows, los ficheros de opciones de ejemplo también se encuentran en el directorio de instalación de MySQL. (vea anteriormente en esta sección o Capítulo 2, Instalar MySQL si no sabe dónde se encuentra este directorio). Actualmente hay ficheros de opciones para sistemas pequeños, medios, grandes y muy grandes. Para experimentar con uno de estos ficheros, se lo debe copiar como C:\my.cnf en Windows o como .my.cnf en el directorio home en Unix.

Nota: La extensión .cnf de los ficheros de opciones podría no mostrarse en Windows

Todos los programas MySQL que soportan ficheros de opciones manejan las siguientes opciones de línea de comandos:

  • --no-defaults

    No lee ningún fichero de opciones.

  • --print-defaults

    Imprime el nombre del programa y todas las opciones que obtiene desde los ficheros de opciones.

  • --defaults-file=path_name

    Utiliza solamente el fichero de opciones especificado. path_name es la ruta completa al fichero.

  • --defaults-extra-file=path_name

    Utiliza el fichero de opciones especificado, lo procesa luego del fichero global de opciones pero antes del fichero de opciones del usuario. path_name es la ruta completa al fichero.

Para funcionar correctamente, cada una de estas opciones debe colocarse en la línea de comandos inmediatamente a continuación del nombre del comando, a excepción de --print-defaults que puede aparecer luego de --defaults-file o --defaults-extra-file.

En los scripts del shell puede utilizar el programa my_print_defaults para procesar ficheros de opciones. El siguente ejemplo muestra la salida que my_print_defaults produciría al solicitarle que muestre las opciones halladas en los grupos [client] y [mysql]:

shell> my_print_defaults client mysql
--port=3306
--socket=/tmp/mysql.sock
--no-auto-rehash

Nota para desarrolladores: El manejo de ficheros de opciones está implementado en la librería cliente C simplemente a través del procesamiento de todas las opciones coincidentes (esto es, opciones en el grupo apropiado) antes que cualquier argumento de la línea de comandos. Esto funciona bien con programas que emplean la última aparición de una opción especificada múltiples veces. Si se tiene un programa C o C++ que maneja opciones especificadas múltiples veces pero que no lee ficheros de opciones, se necesita agregar solamente dos lineas para darle esa capacidad. Examine el código fuente de cualquiera de los programas cliente estándar de MySQL para ver cómo se hace.

Varias otras interfaces con MySQL pertenecientes a otros lenguajes se basan en la librería cliente de C, y algunas de ellas proporcionan una forma de acceder al contenido de ficheros de opciones. Esto incluye a Perl y Python. Consulte la documentación de su interface preferida para más detalles.

4.3.3. Usar variables de entorno para especificar opciones

Para especificar una opción empleando una variable de entorno, se establece el valor de la variable usando la sintaxis apropiada del procesador de comandos. Por ejemplo, en Windows o NetWare se establece la variable USER para indicar el nombre de la cuenta MySQL. Para hacerlo, se usa esta sintaxis:

SET USER=your_name

La sintaxis en Unix depende del shell. En el supuesto de que se quisiera especificar el número de puerto TCP/IP empleando la variable MYSQL_TCP_PORT, la sintaxis típica (tal como se hace en sh, bash, zsh, etc.) es la siguiente:

MYSQL_TCP_PORT=3306
export MYSQL_TCP_PORT

El primer comando establece el valor de la variable, y el comando export exporta la variable hacia el entorno del shell de forma que su valor sea accesible a MySQL y otros procesos.

csh y tcsh son un caso similar. Cuando se ejecuta estos shells, se debe usar setenv para que el valor de la variable esté disponible para el entorno:

setenv MYSQL_TCP_PORT 3306

El comando que establece el valor de las variables de entorno puede ejecutarse en el intérprete de comandos para que tenga efecto inmediatamente. Estos valores existen hasta que se cierra la sesión de usuario. Para que los valores tomen efecto cada vez que se inicia sesión, deben ubicarse los comandos en un fichero de inicio que el intérprete de comandos lea en cada arranque. Algunos ficheros de inicio típicos son AUTOEXEC.BAT para Windows, .bash_profile para bash, o .tcshrc para tcsh. Consulte la documentación de su intérprete de comandos para detalles más específicos.

En Apéndice E, Variables de entorno se listan todas las variables de entorno que afectan la operación de los programas MySQL.

4.3.4. Utilización de opciones para establecer variables de programa

Muchos programas MySQL tienen variables internas que pueden ser establecidas en tiempo de ejecución. En MySQL 5.0, las variables de los programas reciben un valor del mismo modo que cualquier otra opción de nombre largo que tome valores. Por ejemplo, mysql tiene una variable max_allowed_packet que controla el máximo tamaño de su buffer de comunicación. Para establecer el valor de la variable max_allowed_packet de mysql en 16MB, use cualquiera de los siguientes comandos:

shell> mysql --max_allowed_packet=16777216
shell> mysql --max_allowed_packet=16M

El primer comando especifica el valor en bytes. El segundo especifica el valor en megabytes. Los valores de las variables pueden tener un sufijo K, M, o G (ya sea en mayúsculas o minúsculas) para indicar la unidad, que puede ser kilobytes, megabytes, o gigabytes.

En un fichero de opciones, la variable se coloca sin precederla con dos guiones:

[mysql]
max_allowed_packet=16777216

O bien:

[mysql]
max_allowed_packet=16M

Si lo prefiere, los caracteres de subrayado en una variable pueden cambiarse por guiones:

Nota: La antigua sintaxis --set-variable = opcion=valor aún se reconoce en MySQL 5.0, pero está obsoleta

Algunas variables del servidor pueden recibir valores en tiempo de ejecución. Para más detalles, consulte Sección 5.3.3.1, “Variables de sistema dinámicas”.


É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.