Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Programación 2
Módulo 1: Bases de Datos
Anexo 1: Instalación y uso de MySQL
Anexo 1 - MySQL
A.1.1. Instalación
Vamos a usar MySQL como SGBD, y algunas bases de datos de prueba que vienen
incorporadas con la instalación, la base de datos sakila y world.
• sakila: Esta base de datos, fue diseñada para almacenar datos de un comercio
de venta de películas en DVD. Todos sus datos son artificiales y fueron
generados automáticamente.
• world: Esta es una pequeña base de datos con información de países, ciudades
e idiomas.
A.1.1. Instalación
Vamos a usar la versión Community de MySQL, esta es la versión gratuita tanto para
descargar, como para usar. Está disponible bajo la licencia GPL.
Para instalar MySQL Server y los demás productos que necesitamos, vamos a usar
MySQL Installer, un programa que administra la instalación de productos de MySQL
en nuestra PC. Se puede descargar de la página: https://dev.mysql.com/downloads/
Figura A1
Una vez descargado MySQL Installer, al ejecutarlo nos permitirá instalar sus
productos mediante algún paquete preestablecido o de forma manual personalizada
(Custom).
Figura A2
Luego, el instalador nos solicitará una contraseña para root, el super usuario
administrador del servidor. Muchos SGBD utilizan este mismo nombre para su super
usuario administrador. Es imperativo que no perdamos esta contraseña, si lo hacemos
no podremos ingresar al servidor (con ese usuario).
Figura A4
A su vez, también podemos crear otros usuarios para el servidor, indicando usuario,
contraseña y rol. Existen muchos roles predefinidos en MySQL (una buena opción es el
rol DBManager). Cada uno de estos tendrá más o menos permisos sobre el servidor.
root tiene todos los permisos habilitados sobre el servidor. También podremos añadir
usuarios más tarde desde MySQL Workbench.
Figura A5
Al iniciar el cliente nos pedirá automáticamente la contraseña del usuario root. Y una
vez proporcionada, nos mostrará una bienvenida y nos dará control sobre el prompt,
con el texto mysql>. Este es similar al de la REPL de Python, en el sentido de que
espera el ingreso de un comando, lo ejecuta y muestra la salida, y nos vuelve a dar el
control.
Figura A6
Todos los comandos que reciba el cliente deben finalizar con ; (punto y coma). Si no
los incluimos, el cliente no ejecutará el comando y quedará a la espera del carácter ;.
Podemos probar ejecutando el comando show databases;, el cual nos mostrará una
tabla con todas las bases de datos almacenadas en el servidor. Entre ellas deben
encontrarse sakila y world, las bases de datos de prueba que incluimos en la
instalación. Si estas no aparecen, se puede volver a ejecutar el instalador y agregarlas
al sistema. Las demás son bases de datos usadas por MySQL para manejar el servidor
(no debemos modificarlas).
Figura A7
Figura A8
Al iniciar Workbench nos mostrará una ventana con una conexión ya creada para el
usuario root.
Figura A9
Al hacer clic sobre esta conexión nos solicitará la contraseña. También tendremos la
posibilidad de almacenar la contraseña para que no nos la pida nuevamente, tildando
la opción “Save password in vault”.
Figura A10
Al acceder con las credenciales vamos a ver la pantalla principal de uso del servidor.
Figura A11
Para crea un nuevo usuario debemos usar, en primer lugar, un usuario que pueda crear
otros usuarios, por ejemplo, root. Desde MySQL CLI debemos usar el comando
CREATE USER de la siguiente forma:
Por ejemplo:
En este punto el usuario está creado, pero no puede hacer nada todavía, ya que no tiene
ningún permiso o privilegio concedido.
La lista de permisos es una lista de nombres de las sentencias sobre las cuales el
usuario tiene permisos de ejecución. Después de la palabra reservada ON debemos
indicar la base de datos y tabla sobre las que se van a conceder estos privilegios.
Finalmente, después de la palabra reservada TO indicamos el usuario y el servidor
donde queremos conceder los privilegios.
Por ejemplo, a continuación, vamos a dar permisos para crear, modificar y eliminar
tablas, también para insertar, modificar, eliminar, consultar registros y crear claves
foráneas, y finalmente, forzar a que los cambios tengan efecto (con RELOAD). Si
queremos que estos permisos sean concedidos sobre todas las tablas de todas las
bases de datos, podemos usar *.*. Finalmente vamos a conceder los permisos al
usuario juan en el servidor de la instalación local de MySQL localhost.
Con esto, el usuario ya puede crear una conexión al servidor y manejar las bases de
datos sobre las cuales tiene permisos.
Primero, debemos acceder a la opción “Users and Privileges” del menú “Server”.
Figura A12
Allí podemos presionar el botón “Add account” para completar el formulario de
creación de usuarios.
Figura A13
Una vez ingresados esos datos, podemos ir a la pestaña “Administrative Roles” para
elegir qué privilegios se le va a dar al usuario.
Figura A14
Un rol muy completo es el de “DBManager”. Este tiene todos los permisos sobre todas
las bases de datos existentes además de poder crear nuevas. También tiene permisos
para realizar backups. Aunque no tiene permisos para crear usuarios.
Por otro lado, podemos seleccionar manualmente los privilegios que queramos que
tenga nuestro usuario sin que estos se ajusten a un rol específico. Estaríamos creando
un rol personalizado.
Figura A15
Una vez seleccionado el rol y los permisos deseados, podemos presionar el botón
“Apply” para crear efectivamente el usuario.
Figura A16
Una vez creado el usuario, podemos crear una conexión al servidor de la misma forma
que vimos en la sección anterior.
Para ejecutar este comando, el directorio que la contiene (bin) debe está en el path
del sistema.
Por ejemplo:
Figura A17
En la pestaña que se abre, “Data Export”, se muestran todas las bases de datos del
servidor. Y podemos seleccionar la que queremos respaldar. También podemos
seleccionar qué tablas respaldar (usualmente se dejan todas selccionadas). Más abajo
podemos elegir si queremos guardar solo los datos, solo el esquema o ambos, en
nuestro ejemplo elegimos ambos.
Una vez seleccionadas las opciones que deseamos, podemos realizar el dump o
volcado de datos con el botón “Start Export”.
Figura A18
Una vez terminado, nos mostrará la siguiente pestaña “Export progress” donde estarán
los detalles.
Figura A19
Finalmente, podemos ver que el archivo del dump se encuentra donde lo configuramos
anteriormente.
Figura A20
A.1.5. Restaurar o Restore
Ahora veamos cómo restaurar un backup existente.
Nuevamente, veremos cómo realizar esta acción desde la CLI y desde Workbench.
El usuario que se elija debe tener permisos para crear una base de datos y para ejecutar
los comandos necesarios para restaurar el dump. Si no estamos seguros de los
privilegios del usuario que queremos usar, siempre podemos usar root, que tiene todos
los permisos.
Para poder restaurar la base de datos, debemos estar usando una base de datos. Para
esto ejecutamos el comando:
Figura A21
Más abajo, tenemos que elegir una base de datos sobre la cual restaurar el backup.
Podemos elegir una existente (esto sobrescribirá los datos que contenga) o crear una
nueva usando el botón “New”.
Figura A22