1.4. Empezar a trabajar con MySQL
En la máquina virtual que os proporcionamos hay instalado un SGBD MySQL. Al iniciar la máquina virtual también se inicia el servidor MySQL.
El sistema cliente-servidor permite acceder a un único servidor desde varios clientes. Por defecto, el cliente del sistema es un terminal o línea de comandos, pero se puede acceder también al servidor desde un cliente con interfaz gráfica de usuario (GUI).
En la máquina virtual está instalada la GUI MySQL Workbench, pero es posible acceder al servidor MySQL desde muchos clientes con diferentes GUI.
Para empezar a trabajar con MySQL utilizaremos el terminal de Linux ejecutando el comando mysql.
Una vez establecida la conexión al servidor, el programa cliente permanece siempre a la espera de la introducción de un nuevo comando SQL por parte del usuario.
Es importante ser cuidadoso con la sintaxis de los comandos, finalizando cada instrucción con el símbolo «;».
Para ilustrar el funcionamiento del juego de instrucciones de SQL mostrado en la tabla 1 sobre el modelo relacional anterior (ver figura 4), implementaremos una base de datos que denominaremos catalogo.
Tabla 1. Manual de referencia de comandos de MySQL
Comando | Descripción |
CREATE USER |
Dar de alta a un nuevo usuario |
DROP USER |
Dar de baja a un usuario existente |
ALTER USER |
Modificar la cuenta de un usuario |
GRANT |
Autorizar a un usuario sobre una base de datos |
REVOKE |
Revocar las autorizaciones de un usuario |
SHOW GRANTS |
Mostrar las autorizaciones de un usuario |
CREATE DATABASE |
Crear una nueva base de datos |
DROP DATABASE |
Eliminar una base de datos existente |
USE DATABASE |
Acceder a una base de datos existente |
SHOW DATABASES |
Mostrar la lista de las bases de datos |
CREATE TABLE |
Crear una nueva tabla |
DROP TABLE |
Eliminar una tabla existente |
SHOW TABLES |
Mostrar la lista de las tablas |
DESCRIBE |
Mostrar los atributos de una tabla |
LOAD DATA |
Poblar una tabla con un fichero de registros |
INSERT |
Poblar una tabla con un registro |
UPDATE |
Actualizar un registro de la tabla |
DELETE |
Borrar un registro de la tabla |
SELECT |
Realizar una consulta sobre una o más tablas |
Help |
Mostrar ayuda sobre un comando del sistema |
Pager |
Mostrar listados página a página con otro programa |
Source |
Ejecutar un script de comandos de SQL |
Status |
Mostrar información sobre el estado del sistema |
System |
Ejecutar un comando del terminal |
Warnings |
Mostrar avisos del sistema |
Quit |
Salir del gestor MySQL |
Exit |
Salir del gestor MySQL |
Mysql |
Comando del terminal para invocar al gestor MySQL |
Mysqldump |
Comando del terminal para el backup de una base de datos |
El SGBD MySQL permite gestionar múltiples bases de datos, implementando un sistema de seguridad basado en autorizaciones. Una vez instalado el servidor en nuestro entorno Linux, se crea inicialmente un usuario con el rol de administrador (en inglés, root) con todos los permisos. Por regla general, solo el usuario con dicho perfil posee los permisos suficientes para gestionar el conjunto de usuarios y bases de datos en su totalidad. De este modo, el administrador garantizará el acceso a una determinada base de datos exclusivamente a un grupo de usuarios establecido previamente. Pese a que puede optarse por trabajar directamente como administrador, siempre es recomendable que configuremos una nueva cuenta a nuestro nombre como usuario convencional para autorizarle posteriormente a trabajar con una base de datos en concreto.
En definitiva, el protocolo que debemos seguir para llevar a cabo nuestro trabajo con el gestor de bases de datos consiste en dos fases:
- Invocamos al intérprete de SQL como administrador, realizamos las siguientes tareas y abandonamos el programa:
- Creamos un nuevo usuario a nuestro nombre.
- Creamos una nueva base de datos.
- Autorizamos al nuevo usuario a trabajar con esa base de datos.
- Accedemos al intérprete de SQL con nuestro propio usuario y procedemos a interactuar con la nueva base de datos:
- Especificamos que vamos a trabajar con dicha base de datos.
- Creamos nuevas tablas (vacías) dentro de la base de datos.
- Insertamos nuevos registros en dichas tablas. También podemos modificarlos y eliminarlos.
- Realizamos consultas sobre los registros de las tablas para obtener la información deseada.
Para empezar a trabajar primero debemos ejecutar el programa mysql desde nuestro terminal de Linux empleando el usuario root:
El comando CREATE USER
permite al usuario root dar de alta a un nuevo usuario en nuestro sistema. Es recomendable asignar una contraseña a cada nuevo usuario de nuestro sistema:
Ahora, actuando como administradores, crearemos un nuevo usuario llamado eblanco. Para indicar que este usuario trabajará localmente desde nuestra máquina, que actúa de servidor, emplearemos el término localhost.
En algunos ejemplos, para que sean más compresibles, vamos a estructurar las instrucciones de SQL en varias líneas. Nótese que tras introducir cada línea del comando presionando la tecla «Enter», el intérprete de MySQL insertará los símbolos -> para denotar que aún no hemos terminado de introducir el comando completo. MySQL no procederá a ejecutar el comando hasta reconocer el carácter «;».
Os animamos a reproducir en vuestro ordenador los comandos de SQL presentados en esta unidad.
Existen varios comandos para gestionar el conjunto de bases de datos del sistema (consultad tabla 1). En este momento debemos proceder a crear la base de datos donde trabajará el nuevo usuario con el comando CREATE DATABASE
:
A continuación, creamos la base de datos catalogo y posteriormente empleamos el comando SHOW DATABASES
para obtener el listado de bases de datos existentes. Podemos comprobar que la nueva base de datos ha sido creada correctamente:
El administrador concede permisos sobre las operaciones que un determinado grupo de usuarios puede realizar sobre la base de datos. El comando GRANT permite autorizar el acceso de un usuario a una base de datos en particular:
Para cerrar el trabajo del administrador, debemos garantizar el acceso a la nueva base de datos catalogo a nuestro usuario eblanco empleando el comando GRANT
. Con la cláusula ALL, el administrador concede el conjunto completo de permisos a este usuario, aunque exclusivamente sobre esta base de datos. Si queremos eliminar privilegios a un usuario debemos utilizar el comando REVOKE
.
Finalmente, para abandonar la ejecución del programa mysql como administradores, podemos emplear los comandos quit
o exit
.
A partir de este instante, a la hora de ejecutar el programa mysql vamos a trabajar sobre nuestra base de datos con el nuevo usuario eblanco. En primer lugar, debemos acceder al gestor de MySQL empleando el nombre de usuario y la contraseña que hemos creado.
Como es la primera vez que accedemos con este usuario, vamos a obtener información sobre el listado de las bases de datos accesibles utilizando el comando SHOW DATABASES
.
Como mostramos a continuación, en la figura 14, nuestro nuevo usuario puede trabajar con dos bases de datos: catalogo y una segunda base de datos (information_schema) que contiene información interna sobre la configuración del sistema.
Con el comando SHOW GRANTS
podemos ver también las autorizaciones que el administrador ha concedido a este usuario.
Cualquier usuario, una vez dentro del sistema, debe especificar el nombre de la base de datos que va a usar antes de empezar a realizar operaciones sobre ella. Para indicar el nombre de la base de datos que vamos a seleccionar, usaremos el comando USE:
Como deseamos trabajar con la base de datos catalogo, procedemos a declarar este hecho en el intérprete de MySQL. Una vez esta instrucción ha sido ejecutada con éxito, ya estamos en disposición de crear las tablas que sirven como soporte de las entidades y las relaciones diseñadas con anterioridad para poblarlas posteriormente con nuevos registros.