Saltar la navegación

2.2.1.- mysql y mysqladmin.

Ilustración de una ventana de terminal de Linux con línea de comandos.
shokunin (Dominio público)


La forma más habitual de utilizar la herramienta mysql es en modo interactivo. Una vez te conectas al servidor MySQL, te presenta una línea de órdenes. En esa línea de órdenes puedes introducir sentencias SQL, que se ejecutarán sobre la base de datos seleccionada, y algunos comandos especiales. Las sentencias SQL deben terminar en el carácter ";". Entre los comandos especiales que puedes usar están:

  • connect. Establece una conexión con un servidor MySQL.
  • use. Permite seleccionar una base de datos.
  • exit o quit. Termina la sesión interactiva con MySQL.
  • help. Muestra una pantalla de ayuda con la lista de comandos disponibles.

Por ejemplo, si cuando estás utilizando la herramienta quieres seleccionar la base de datos "dwes", debes hacer: mysql>use dwes;

Las sentencias que teclees a partir de ese instante se ejecutarán sobre la base de datos "dwes".

También puedes usar el comando mysql para que ejecute todas las sentencias de un archivo de procesamiento por lotes (normalmente con extensión .sql). Por ejemplo y suponiendo que nos encontremos en el directorio donde se encuentra el archivo crearTablas.sql y queremos que este archivo se ejecute en la base de datos proyecto:

mysql -u usuario -p proyecto < crearTablas.sql

Si todo ha ido bien volveremos a la consola en la que estemos trabajando, no nos aparece ningún mensaje, si algo ha ido mal nos aparecerá el mensaje de error.

Archivos de texto sin formato, que contienen un conjunto de instrucciones.

Recomendación

¿Podemos o no almacenar "emojis" en MySQL?, la respuesta es si, pero no utilizando el "utf-8" que normalmente se usaba.

En 2010 (Con su versión 5.5.3) MySQL agrega una variante a "utf-8" llamada "utf8mb4". Con este nuevo tipo de codificación, cada carácter puede ser representado hasta 4 bytes, lo que nos permitirá guardar "emojis" en nuestras tablas algo cada vez más necesario.

A la hora de crear nuestra base de datos si queremos implementar esta característica, lo haremos de la siguiente manera:

mysql>create database mi_base_de_datos CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;



Ejercicio resuelto

Imagen de un diagrama entidad relación con las tablas productos, tiendas, familias y stocks y las relaciones entre ellas. stocks está relacionada con tiendas y productos y familias con productos.
Captura de pantalla de phpMyAdmin (Elaboración propia)


Crearemos como usuario MySQL root y usando un archivo de procesamiento por lotes,  la base de datos proyecto. En ella meteremos las tablas del siguiente esquema, fíjate en los campos y las relaciones entre ellas. De igual manera en dicho archivo crearemos el usuario "gestor" con contraseña "secreto" y le daremos todos los permisos en la base de datos "proyecto". Las tablas serán:

  1. productos (id, nombre, nombre_corto, descripcion, pvp, familia)
  2. tiendas (id, nombre, tlf)
  3. familias (cod, nombre)
  4. stocks (producto, tienda, unidades)

Es decir el archivo ".sql", estará todo el código para crear la base de datos, las tablas, el usuario y los permisos del mismo para acceder a ella.

La solución deberá ser el archivo ".sql" y el comando, que tenemos que usar en el terminal,  para "cargar" el archivo en la base de datos MySQL.

mysqladmin es una herramienta no interactiva orientada a tareas de administración del propio servidor. Las tareas concretas de administración a llevar a cabo, se indican mediante parámetros en la línea de comandos. Entre las tareas que puedes llevar a cabo con esta utilidad se encuentran:

  • Crear y eliminar bases de datos.
  • Mostrar la configuración y el estado del servidor.
  • Cambiar contraseñas.
  • Detener un servidor.

Por ejemplo, si quieres mostrar información sobre el estado actual del servidor local, puedes utilizar el comando "status" y para ver la versión instalada "version", puedes ver los comandos disponible usando "mysqladmin --help":

mysqladmin --help
sudo mysqladmin status
sudo mysqladmin version

Fíjate que los comandos anteriores no necesitan especificar usuario por que son solamente de información. Si quisiésemos, por ejemplo crear una base de datos, borrarla, reiniciar el servidor... con mysqladmin deberíamos hacerlo con sudo y especificando el usuario root. Por ejemplo para crear una base de datos de nombre miBase:

sudo mysqladmin -u root create miBase

Autoevaluación

Pregunta

Si quieres saber si en una tabla de una base de datos existe o no un registro, ¿qué herramienta en línea de comandos puedes usar?

Respuestas

mysqladmin.

mysql.

Retroalimentación