Está en la página 1de 22

Tecnicatura Universitaria en Desarrollo de Software

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

A.1.2. Interactuando con el servidor

A.1.2.1. Usando MySQL Command Line Client

A.1.2.2. Usando Workbench

A.1.3. Creación de usuarios

A.1.3.1 Usando MySQL Command Line Client

A.1.3.2 Usando Workbench

A.1.4. Respaldar o Backup

A.1.4.1. Usando herramienta de CLI mysqldump

A.1.4.2. Usando Workbench

A.1.5. Restaurar o Restore

A.1.5.1 Usando MySQL Command Line Client

A.1.5.2. Usando Workbench


Ahora que vamos a comenzar a ver SQL, es necesario tener un lugar donde practicar
las consultas.

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.

El software esencial de una instalación de MySQL es el SGBD, el cual es llamado


Servidor, Ya que va a ser el que reciba y conteste nuestras consultas. Una instalación
de MySQL Server se ejecuta en una computadora como un servicio (un programa que
se ejecuta en segundo plano y escucha peticiones).

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

Si elegimos la opción Custom podremos seleccionar qué productos vamos a instalar,


sin agregar productos que no necesitamos. En esta materia vamos a utilizar los
siguientes productos:

• MySQL Server: el servidor propiamente dicho. Además, instala


automáticamente un cliente de línea de comandos.
• MySQL Workbench: es una aplicación cliente con GUI, para trabajar con
servidores MySQL, locales y remotos.
• MySQL Connector/Python: es una librería de Python que sirve para poder
conectarse con un servidor y realizar consultas. Es necesario tener instalado
Python en el sistema (y agregado al Path) para poder instalar esta librería, de
otro modo, el instalador no nos permitirá instalarla. De cualquier manera, es
posible instalar todos estos productos posteriormente, cuando se hayan
cumplido con los requisitos necesarios.
• Samples and Examples: son bases de datos de prueba, diseñadas para ser
usadas como ejemplos en libros, tutoriales, etc. Nosotros las vamos a utilizar
tanto en la teoría como en la práctica.
Figura A3

Después de seleccionar los productos, debemos iniciar la instalación.

Al finalizar la instalación comenzará la configuración del servidor. Las configuraciones


de Red y Autenticación podemos dejarlas como están.

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.

A continuación, se establecerá la configuración del servicio sobre Windows y sus


permisos. Podemos dejar los parámetros por defecto.

Por último, al finalizar la configuración, se pedirá la contraseña de root para


confirmar la conexión al servidor.
A.1.2. Interactuando con el servidor
Una vez instalado MySQL server podemos acceder usando las credenciales de los
usuarios creados durante la instalación.

Hay dos formas de interactuar con el servidor después de la instalación, mediante el


cliente MySQL Workbench (GUI), o mediante el cliente de MySQL Command Line
Client (Línea de comandos).

Veremos como trabajar con ambos.

A.1.2.1. Usando MySQL Command Line Client


Vamos a ver cómo interactuar con MySQL usando de la Interfaz de Línea de Comandos
o CLI.

La instalación pone a disposición un acceso directo al programa mysql.exe este es el


cliente de línea de comandos, llamado MySQL Command Line Client. Este acceso
directo presupone el uso del usuario root. Si queremos usar otro usuario debemos
ejecutar el programa manualmente, indicando el usuario. Vamos a contemplar esa
posibilidad luego, por ahora vamos a usar el cliente con root.

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 ;.

Para salir del programa debemos ejecutar el comando quit;.

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

Acá podremos aprender los distintos comandos y consultas SQL, escribiéndolas


directamente al prompt.
Para más comodidad y si no queremos usar la línea de comandos, podemos usar
Workbench, una aplicación con GUI. Veremos cómo usarla a continuación.

A.1.2.2. Usando Workbench


Workbench es una aplicación cliente de Interfaz Gráfica para MySQL. Es muy
completa e intuitiva, y se puede manejar un servidor completamente con ella.

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

A la izquierda tenemos el panel “Navigator”, y dentro, seleccionada, está la pestaña


“Schemas”, la cual muestra una lista de todas las bases de datos del servidor, y donde
podemos navegar en su contenido. Para comenzar a usar una base de datos, debemos
hacer doble clic sobre alguna. Veremos que su nombre cambia a negrita y se despliega
su contenido. Las consultas que ejecutemos después se harán sobre esa base de datos
hasta que comencemos a usar otra.

A la derecha tenemos un editor de texto que permite ejecutar sentencias y consultas


SQL sobre la base de datos que esté seleccionada. También podemos guardar estos
scripts como un archivo de texto. Los resultados se mostrarán abajo de esta sección en
forma de tabla (no se ve esta sección en la imagen). Y debajo de esta sección de
resultados, está la sección de salida “Output”, la cual nos indica si la sentencia
ejecutada se realizó con éxito, cuanto demoró en ejecutarse, cuantos registros se
modificaron, o si hubo algún error en la consulta.

A.1.3. Creación de usuarios

A.1.3.1. Usando MySQL Command Line Client


Usando el cliente de línea de comandos de MySQL, podemos crear nuevos usuarios y
darles privilegios.

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:

CREATE USER '<nombre de usuario>'@'<servidor>' IDENTIFIED BY '<cont


raseña>';

Por ejemplo:

CREATE USER 'juan'@'localhost' IDENTIFIED BY '123456';

En este punto el usuario está creado, pero no puede hacer nada todavía, ya que no tiene
ningún permiso o privilegio concedido.

Para conceder permisos a un usuario debemos usar el comando GRANT de la siguiente


forma:

GRANT [lista de permisos] ON base_datos.tabla TO '<nombre_usuario>'


@'<host>';

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.

GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENC


ES, RELOAD ON *.* TO 'juan'@'localhost';`

Con esto, el usuario ya puede crear una conexión al servidor y manejar las bases de
datos sobre las cuales tiene permisos.

Finalmente, para completitud, mostramos los comandos para quitar privilegios a un


usuario y para eliminar un usuario del servidor:

• REVOKE [lista de permisos] ON db.tabla TO nombre_usuario@host;:


quita los permisos indicados en la misma forma que GRANT los concede.
• DROP USER nombre_usuario@host;: elimina una (o más si se incluyen)
cuenta de usuario y sus privilegios del servidor.

A.1.3.2. Usando Workbench


Como dijimos, desde Workbench se pueden gestionar todos los aspectos del servidor,
entre ellos, la creación de usuarios.

Vamos a ver cómo podemos crear un usuario:

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

Debemos ingresar al menos un nombre de usuario y una contraseña. También podemos


indicar qué a servidores limitar el acceso, por ejemplo, podemos limitar el acceso solo
a localhost.

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.

A.1.4. Respaldo o Backup


Es importante saber cómo crear un respaldo o backup de una base de datos, ya que si
algo pasa con ella podremos restaurarla al estado en que estaba.

Ya que vamos a usar bases de datos de prueba, quizá terminemos modificando o


eliminando las tablas o bases de datos accidentalmente. Por lo tanto, primero vamos
a aprender a realizar un backup y restore de una base de datos con MySQL.

A.1.4.1 Usando herramienta de CLI mysqldump


Podemos crear un backup de una base de datos mediante la herramienta mysqldump.
Esta permite que un usuario del servidor (con los correspondientes permisos) genere
un dump o volcado de los datos y estructura de una base de datos a un archivo.

Para ejecutar este comando, el directorio que la contiene (bin) debe está en el path
del sistema.

El comando que debemos ejecutar es el siguiente:

mysqldump -u <usuario> -p <nombre db> --result-file= <nombre_respal


do>.sql
Donde:

-u <usuario>: es el nombre de usuario que va a ejecutar el dump.

-p: indica que la herramienta nos va a pedir la contraseña del usuario


(inmediatamente después de ejecutarla) para poder ejecutar el dump.

<nombre db>: es el nombre de la base de datos que queremos respaldar.

--result-file=<nombre archivo>: para indicar en que archivo queremos que se


guarde el dump.

Por ejemplo:

mysqldump -u juan -p sakila --result-file=sakila-21-06-23.sql

Este comando generará el archivo de backup para que podamos almacenarlo y,


eventualmente, restaurar la base de datos. El archivo se generará en el directorio en
donde hayamos ejecutado el comando, por lo tanto, debemos navegar hasta el
directorio deseado antes de ejecutar el comando.

Por defecto, el dump incluye ambos, esquema y datos de la base de datos.

A.1.4.2. Usando Workbench


Para crear un backup usando Workbench, primero debemos seleccionar la pestaña
“Administration” del panel “Navigator”, y entre las opciones, seleccionar “Data
Export”.

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.

Finalmente, podemos elegir si respaldamos en una carpeta de proyecto o en un solo


archivo (“Self-Contained File”). En nuestro ejemplo elegimos la segunda opción,
seleccionando un directorio y nombre del archivo.

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.

A.1.5.1. Usando MySQL Command Line Client


Vamos a ver cómo restaurar un backup usando la aplicación MySQL Command Line
Client. Recordemos que para usarla con root podemos usar el acceso directo creado
en la instalación, y para usarla con otro usuario debemos ejecutar el comando mysql
desde CMD, como vimos en la sección A.1.2.1.

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.

Si la base de datos que queremos restaurar no existe en el servidor, debemos crearla


(vacía) antes, ya que el respaldo contiene el esquema y los datos, pero no el comando
para crear la base de datos (a menos que se haya elegido esa opción previamente).

Lo podemos hacer con el comando:

mysql> CREATE DATABASE <nombre>;

Observar el punto y coma al final de la instrucción. Recordemos que dentro de la


herramienta Command Line Client cada instrucción debe finalizar en ;.

Para poder restaurar la base de datos, debemos estar usando una base de datos. Para
esto ejecutamos el comando:

mysql> USE <nombre>;

Finalmente, vamos a poder ejecutar la restauración con el comando SOURCE de la


siguiente forma:

mysql> SOURCE <ruta completa archivo dump>;

Recordemos que debemos indicar la ruta completa del archivo de backup.


A.1.5.2. Usando Workbench
Finalmente, para restaurar un backup usando Workbench, primero debemos
seleccionar la pestaña “Administration” del panel “Navigator”, y entre las opciones,
seleccionar “Data Import/Restore”.

Figura A21

En la pestaña que se abre tenemos la opción de restaurar un Proyecto o un archivo solo


(Self-Contained File). Siguiendo nuestro ejemplo de backup, vamos a restaurar el
archivo solo.

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

También podría gustarte