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=
o como pass_val
--password
. En el último caso,
donde no se incluyó la contraseña, el programa la
solicitará. También puede emplearse una forma corta como
-p
o
como pass_val
-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.
É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.