Node.js

Introducció a MariaDB/MySQL

  

En aquest document veurem com instal·lar i posar en funcionament un SGBD relacional. Prendrem com a exemple el sistema MariaDB/MySQL, que pot ser instal·lat en diverses plataformes.

1. Instal·lació

Per a poder tindre un sistema MariaDB/MySQL funcionant i poder-lo gestionar còmodament, instal·larem el servidor MySQL com a servei en el nostre sistema.

Versió requerida: cap en particular, podem instal·lar l’última que tinga el gestor de paquets que utilitzem, o l’última que descarreguem de la web oficial, segons el cas.

1.1. Instal·lació en Linux

Per a instal·lar el servidor en un sistema Debian, Ubuntu o similar, podem seguir aquests passos des del terminal:

sudo apt update
sudo apt install mysql-server

Això instal·larà el servidor bàsic en el sistema i ho deixarà iniciat com a servei. Amb això tenim suficient per a desenvolupar les activitats del curs. Podem comprovar que el servidor està en marxa amb la comanda:

sudo systemctl status mysql.service

I podem parar, iniciar o reiniciar el servei amb aquestes comandes:

sudo systemctl stop mysql.service
sudo systemctl start mysql.service
sudo systemctl restart mysql.service

Instal·lació segura

El següent pas (opcional) és fer una instal·lació més segura, ja que per defecte l’usuari root té una contrasenya buida. Primer haurem d’accedir a la consola de MySQL per a establir la contrasenya de ROOT. Escriurem sudo mysql perquè s’inicie la consola i, des d’aquesta, escrivim la següent comanda:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'nou_password';

on nou_password serà el password que vulguem que tinga root. En la màquina virtual proporcionada tindreu un usuari root amb password root, com a exemple. Si volem afegir nous usuaris i permisos, podem consultar com fer-ho en webs com aquesta.

Una vegada assegurat l’usuari root, podem executar aquesta comanda per a configurar una instal·lació segura:

sudo mysql_secure_installation

Amb això s’iniciarà un assistent que ens guiarà a través d’una sèrie de passos per a eliminar taules de test, permetre/prohibir accés remot d’usuari root, etc. Podem configurar aquestes opcions com millor ens semble.

1.2. Instal·lació en altres sistemes (Windows i Mac)

La instal·lació de MySQL en altres sistemes no forma part dels continguts importants del curs, ja que és recomanable que utilitzeu la màquina virtual proporcionada. No obstant això, si voleu realitzar aquesta instal·lació, ací se us faciliten alguns recursos externs que podeu consultar per a fer-ho.

1.3. XAMPP

Com a alternativa a instal·lar MySQL com a servei en el sistema podem optar per instal·lar un sistema XAMPP, que integra, entre altres coses, un servidor web Apache, el SGBD MySQL i el llenguatge PHP.

Per a instal·lar XAMPP, n’hi ha prou amb descarregar-ho del seu web oficial i seguir els passos de l’assistent. Ens n’hi ha prou amb tindre instal·lat Apache, MySQL i PHP, així que podem descartar altres opcions que ens oferisca, si ens dona a triar.

Linux

En el cas de Linux, hem de donar permisos d’execució i executar l’arxiu .run que descarreguem des d’algun terminal, amb permisos d’administrador (sudo). Suposant que l’arxiu siga xampp-linux-x64-7.4.5-installer.run, per exemple, els passos són els següents (des de la carpeta on ho hem descarregat):

sudo chmod +x xampp-linux-x64-7.4.5-installer.run
sudo ./xampp-linux-x64-7.4.5-installer.run

Windows i MacOSX

En el cas de Windows o Mac OSX simplement cal llançar l’instal·lador i seguir els passos, triant les opcions que ens interesse instal·lar (almenys, Apache, MySQL i PHP), si ens donen a triar. Així és com podem deixar-ho en el cas de Windows, per exemple:

1.3.1. El manager de XAMPP

XAMPP proporciona una eina manager o panell de control que ens permet gestionar en tot moment els serveis actius.

En el cas de Linux es troba en /opt/lampp/manager-linux-x64.run. Podem accedir a la carpeta des del terminal per a executar-ho (amb permisos de superusuario), o bé crear algun accés directe en una altra ubicació que ens resulte més còmoda. Per exemple, podem crear un accés directe en l’escriptori amb l’editor nano o amb el propi editor Visual Studio Code que hem instal·lat prèviament. Suposant la carpeta /home/alumne/Escriptori/ o /home/alumne/Desktop/, podem primer crear l’arxiu buit:

touch /home/alumne/Desktop/XAMPP.desktop

Editem el contingut de l’arxiu i afegim les línies de configuració per a l’accés directe:

[Desktop Entry]
Encoding=UTF-8
Name=Manager XAMPP
Comment=Manager XAMPP
Exec=sudo /opt/lampp/manager-linux-x64.run
Icon=/opt/lampp/htdocs/favicon.ico
Categories=Aplicacions;Programació;Web
Version=8.1.6
Type=Application
Terminal=1

NOTA: la versió del programa (atribut Version) dependrà de la versió que hàgem instal·lat de XAMPP en el moment concret. L’atribut Terminal el posem a 1 per a poder especificar el password de superusuario en executar, en cas contrari no funcionarà.

En el cas de Windows, dit manager està en la carpeta d’instal·lació (típicament C:\xampp), en un arxiu anomenat xampp-control.exe, que podem executar. En el cas de Mac OSX, s’haurà creat un accés en la secció de Aplicacions per a poder posar en marxa aquest manager.

El manager ens permetrà llançar o detindre cada servidor. Per a les proves que farem haurem de tindre iniciats tant Apatxe com MySQL. En Linux i Mac US X tindrà una aparença com aquesta aproximadament:

En el cas de Windows l’aparença és diferent, encara que igualment funcional:

Per defecte, Apatxe estarà escoltant en el port 80 (o 443 per a connexions SSL), i MySQL en el 3306. Podem modificar aquests ports en els respectius arxius de configuració (“httpd.conf” i “my.cnf”), dins de les carpetes de la instal·lació de XAMPP (la ubicació concreta d’aquests arxius varia entre versions i entre sistemes operatius).

2. Gestió de bases de dades

Per a poder gestionar còmodament les bases de dades MySQL tenim algunes alternatives:

2.1. El plugin MySQL per a VS Code

L’extensió MySQL (desenvolupada per cweijan) per a Visual Studio Code ens permetrà connectar i gestionar bases de dades MySQL (i també MongoDB) des del propi IDE.

Una vegada la tinguem instal·lada, veurem que en la barra esquerra apareixen dues icones noves, per a gestionar bases de dades relacionals i No-SQL, respectivament:

Hem de fer clic en cadascuna d’elles i crear la connexió a cada servidor (icona de + en la part superior). Ens emplenarà ja els camps amb els paràmetres per defecte, i només hem de posar un nom a cada connexió. Així podria quedar la de MySQL (canviant l’usuari i contrasenya pel qual tinguem en el nostre sistema):

Després de connectar, podrem veure en el panell esquerre les bases de dades existents en aquest servidor:

Així configurarem la connexió de MongoDB (sense usuari ni contrasenya):

I novament, podrem veure a l’esquerra les bases de dades existents:

NOTA: en la màquina virtual amb tot el programari instal·lat ja es deixen configurades totes dues connexions (a MySQL i a MongoDB) des d’aquesta extensió de Visual Studio Code.

2.2. Operacions contra la base de dades

Des de l’extensió MySQL podem fer les tasques habituals de gestió d’una base de dades, com ara:

Per a crear una base de dades, fem clic dret sobre la connexió (panell esquerre) i triem l’opció corresponent:

En la instrucció SQL que apareix en el panell dret, completem el nom de la base de dades i premem en la icona de play en la part superior dreta per a executar la instrucció i crear la base de dades.

Per a emplenar el contingut de la base de dades creada, podem importar les instruccions d’algun script SQL. Per a això fem clic dret sobre la base de dades i triem l’opció d’importar del menú contextual:

NOTA: a vegades el propi script SQL ja té la instrucció CREATE DATABASE, amb el que no és necessari crear-la abans d’importar. Però pot ser una bona pràctica per a evitar que done error. Al cap i a l’últim, si la base de dades ja existeix, aquesta instrucció no la crearà de nou.

Una vegada tinguem la base de dades importada, fent doble clic en cada taula podem veure el seu contingut en el panell dret:

A vegades també ens pot interessar crear una base de dades buida i definir les seues taules des de zero. En aqueix cas, despleguem la base de dades en el panell esquerre, anem a l’apartat de Tables i fem clic en el botó +. En la part dreta completem el script de creació de la taula amb els camps, tipus i restriccions que vulguem. Finalment, premem el botó play de la cantonada superior dreta.

Finalment, si volem guardar les dades en un arxiu script de còpia de seguretat, fem clic dret sobre la base de dades, i triem l’opció Export Data (si volem guardar les taules amb les seues dades) o Export Struct (si només ens interessa l’estructura de les taules, sense la informació que contenen).

Com a annex, des de l’extensió No-SQL també podem gestionar MongoDB, connectar a bases de dades, crear col·leccions, veure el contingut, etc. No obstant això, l’extensió MongoDB for Visual Studio Code que hem vist en altres apartats ofereix una gestió una mica més completa.

Exercici 1:

Crea des de l’extensió per a VS Code una base de dades anomenada contactes en MySQL. Descarrega aquest arxiu comprimit que conté una còpia de seguretat d’aqueixa base de dades, i importa el script SQL des de la pròpia base de dades. Prova d’examinar el contingut des de VS Code.