mysql envía comandos SQL al servidor para
que sean ejecutados. También hay un conjunto de comandos que
mysql interpreta por sí mismo. Para obtener
una lista de estos comandos, se escribe help
o \h
en el prompt
mysql>
:
mysql> help MySQL commands: ? (\h) Synonym for `help'. clear (\c) Clear command. connect (\r) Reconnect to the server. Optional arguments are db and host. delimiter (\d) Set query delimiter. edit (\e) Edit command with $EDITOR. ego (\G) Send command to mysql server, display result vertically. exit (\q) Exit mysql. Same as quit. go (\g) Send command to mysql server. help (\h) Display this help. nopager (\n) Disable pager, print to stdout. notee (\t) Don't write into outfile. pager (\P) Set PAGER [to_pager]. Print the query results via PAGER. print (\p) Print current command. prompt (\R) Change your mysql prompt. quit (\q) Quit mysql. rehash (\#) Rebuild completion hash. source (\.) Execute an SQL script file. Takes a file name as an argument. status (\s) Get status information from the server. system (\!) Execute a system shell command. tee (\T) Set outfile [to_outfile]. Append everything into given outfile. use (\u) Use another database. Takes database name as argument. warnings (\W) Show warnings after every statement. nowarning (\w) Don't show warnings after every statement.
Cada comando tiene forma corta y larga. La forma larga no es sensible a mayúsculas; la forma corta lo es. La forma larga puede seguirse con un terminador de punto y coma, pero la forma corta no debería.
En el comando delimiter
, debe evitar el uso
del carácter antibarra ('\
') ya que es un
carácter de escape para MySQL.
Los comandos edit
,
nopager
, pager
, y
system
sólo funcionan en Unix.
El comando status
proporciona alguna
información sobre la conexión y el servidor que está usando.
Si está ejecutando el modo --safe-updates
,
status
también muestra los valores para las
variables mysql que afectan a sus consultas.
Para loguear las consultas y su salida, use el comando
tee
. Todos los datos mostrados por pantalla
se guardan en un fichero dado. Esto puede ser muy útil para
depurar. Puede activar esta característica en la línea de
comandos con la opción --tee
, o
interactivamente con el comando tee
. El
fichero tee
puede desactivarse
interactivamente con el comando notee
.
Ejecutando tee
de nuevo, vuelve a activar el
logueo. Sin parámetros, se utiliza el fichero anterior. Tenga
en cuenta que tee
vuelca los resultados de
las consultas al fichero después de cada comando, justo antes
que mysql muestre su siguiente prompt.
Navegar o buscar resultados de consultas en modo interactivo
usando programas Unix, tales como less,
more, o cualquier otro programa similar es
posible con la opción --pager
. Si no
especifica ningún valor para la opción,
mysql comprueba el valor de la variable de
entorno PAGER
y configura el paginador al
valor de la misma. La paginación de la salida de datos (output)
puede activarse interactivamente con el comando
pager
y desactivar con
nopager
. El comando tiene un argumento
opcional; si se especifica, el programa de paginación se
configura con el mismo. Sin argumento, el paginador se configura
con el paginador que se especificó en la línea de comandos, o
stdout
si no se especifica paginador.
La paginación de la salida sólo funciona en Unix ya que usa la
función popen()
, que no existe en Windows.
Para Windows, la opción tee
puede usarse
para guardar la salida de las consultas, aunque no es tan
conveniente como pager
para navegar por la
salida en algunas situaciones.
Algunos consejos sobre el comando pager
:
Puede usarlo para escribir en un fichero y que los resultados sólo vayan al fichero:
mysql> pager cat > /tmp/log.txt
Puede pasar cualquier opción al programa que quiera usar como paginador:
mysql> pager less -n -i -S
En el ejemplo precedente, tenga en cuenta la opción
-S
. Puede encontrarla muy útil para
consultar una amplia variedad de resultados. En ocasiones un
conjunto de resultados muy amplio es difícil de leer en
pantalla. La opción -S
con
less puede hacer el resultado mucho más
legible ya que puede desplazarlo horizontalmente usando las
flechas de izquierda y derecha. También puede usar
-S
interactivamente con
less para activar y desactivar el modo de
navegación horizontal. Para más información, lea la
página del manual (man) de less:
shell> man less
Puede especificar comandos muy complejos para el paginador, para tratar la salida de las consultas:
mysql> pager cat | tee /dr1/tmp/res.txt \ | tee /dr2/tmp/res2.txt | less -n -i -S
En este ejemplo, el comando enviaría los resultados de las
consultas a dos ficheros en dos directorios distintos en dos
sistemas de ficheros montados en /dr1
y
/dr2
,y mostraría los resultados en
pantalla vía less.
Puede combinar las funciones tee
y
pager
. Puede tener un fichero
tee activado y tener el
pager
configurado con
less, siendo capaz de navegar en los
resultados con el programa less y al mismo
tiempo tener todo en un fichero. La diferencia entre
tee en Unix usado con el comando
pager
y el comando tee
que
implementa mysql es que el segundo
tee
funciona incluso si no tiene el
tee de Unix disponible. El comando
tee
implementado también loguea todo lo que
se muestra por pantalla, mientras que tee en
Unix usado con pager
no loguea tanto.
Adicionalmente, el logueo en fichero de tee
puede activarse y desactivarse interactivamente desde
mysql. Esto es útil cuando quiere loguear
algunas consultas en un fichero, pero no otras.
En MySQL 5.0, el prompt por defecto mysql>
puede reconfigurarse. La cadena de caracteres para definir el
prompt puede contener las siguientes secuencias especiales:
Opción | Descripción |
\v |
Versión del servidor |
\d |
Base de datos actual |
\h |
Equipo del servidor |
\p |
Puerto TCP/IP usado o fichero socket |
\u |
Nombre de usuario |
\U |
Nombre de cuenta
completo |
\\ |
Carácter de barra invertida '\ ' literal |
\n |
Carácter de nueva línea |
\t |
Carácter de tabulador |
\ |
Espacio (hay un espacio a continuación de la barra invertida) |
\_ |
Espacio |
\R |
Hora actual, en formato militar de 24 horas (0-23) |
\r |
Hora actual, en formato estándar de 12 horas (1-12) |
\m |
Minutos de la hora actual |
\y |
Año actual, dos dígitos |
\Y |
Año actual, cuatro dígitos |
\D |
Fecha actual completa |
\s |
Segundos de la hora actual |
\w |
Día actual de la semana en inglés, en formato de tres letras (Mon, Tue, ...) |
\P |
am/pm |
\o |
Mes actual en formato numérico |
\O |
Mes actual en inglés, en formato de tres letras (Jan, Feb, ...) |
\c |
Contador que incrementa con cada comando ejectuado |
\S |
Punto y coma |
\' |
Comilla |
\" |
Comilla doble |
'\
' seguido por cualquier otra letra es esa
letra.
Si especifica el comando prompt
sin
argumentos, mysql resetea el prompt al valor
por defecto de mysql>
.
Puede cambiar el prompt de diversas formas:
Use una variable de entorno
Puede cambiar la variable de entorno
MYSQL_PS1
con una cadena de caracteres.
Por ejemplo:
shell> export MYSQL_PS1="(\u@\h) [\d]> "
Con un fichero de opciones
Puede cambiar la opción prompt
en el
grupo [mysql]
de cualquier fichero de
opciones MySQL, tal como /etc/my.cnf
o
el fichero .my.cnf
en el directorio
raíz. Por ejemplo:
[mysql] prompt=(\\u@\\h) [\\d]>\\_
En este ejemplo, tenga en cuenta que las barras invertidas
son dos. Si asigna el valor del prompt usando la opción
prompt
en un fichero de opciones, se
recomienda poner dos barras invertidas al usar las opciones
especiales de prompt. Hay algúna redundancia en el conjunto
de opciones de prompt disponible y el conjunto de secuencias
de caracteres de escape especiales que se reconoce en el
fichero de opciones. (Estas secuencias están listadas en
Sección 4.3.2, “Usar ficheros de opciones”). La redundancia puede causar
problemas si usa sólo una barra invertidas. Por ejemplo,
\s
se interpreta como un espacio en lugar
de los segundos actuales. El siguiente ejemplo muestra cómo
definir un prompt dentro de un fichero de opciones que
incluya la hora actual en formato
HH:MM:SS>
:
[mysql] prompt="\\r:\\m:\\s> "
Use una opción por línea de comandos
Puede cambiar la opción --prompt
en la
línea de comandos de mysql. Por ejemplo:
shell> mysql --prompt="(\u@\h) [\d]> " (user@host) [database]>
Interactivamente
Puede cambiar el prompt interactivamente usando el comando
prompt
(o \R
) . Por
ejemplo:
mysql> prompt (\u@\h) [\d]>\_ PROMPT set to '(\u@\h) [\d]>\_' (usuario
@equipo
) [base_de_datos
]> (usuario
@equipo
) [base_de_datos
]> prompt Returning to default PROMPT of mysql> mysql>
É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.