1.4. Començar a treballar amb MySQL
A la màquina virtual que us proporcionem hi ha instal·lat un SGBD MySQL. En iniciar la màquina virtual també s’inicia el servidor MySQL.
El sistema client-servidor permet accedir a un únic servidor des de diversos clients. Per defecte, el client del sistema és un terminal o línia d’ordres, però es pot accedir també al servidor des d’un client amb interfície gràfica d’usuari (GUI).
A la màquina virtual hi ha instal·lada la GUI MySQL Workbench, però és possible accedir al servidor MySQL des de molts clients amb diferents GUI.
Per començar a treballar amb MySQL utilitzarem el terminal de Linux executant l’ordre mysql.
Una vegada establerta la connexió al servidor, el programa client roman sempre a l’espera de la introducció d’una nova ordre SQL per part de l’usuari.
És important ser curós amb la sintaxi de les ordres, i finalitzar cada instrucció amb el símbol «;
».
Per il·lustrar el funcionament del joc d’instruccions de SQL mostrat a la taula 1 sobre el model relacional anterior (vegeu figura 4), implementarem una base de dades que denominarem cataleg.
Taula 1. Manual de referència d’ordres de MySQL.
Ordre | Descripció |
CREATE USER |
Donar d’alta un nou usuari |
DROP USER |
Donar de baixa un usuari existent |
ALTER USER |
Modificar el compte d’un usuari |
GRANT |
Autoritzar un usuari sobre una base de dades |
REVOKE |
Revocar les autoritzacions d’un usuari |
SHOW GRANTS |
Mostrar les autoritzacions d’un usuari |
CREATE DATABASE |
Crear una nova base de dades |
DROP DATABASE |
Eliminar una base de dades existent |
USE DATABASE |
Accedir a una base de dades existent |
SHOW DATABASES |
Mostrar la llista de les bases de dades |
CREATE TABLE |
Crear una nova taula |
DROP TABLE |
Eliminar una taula existent |
SHOW TABLES |
Mostrar la llista de les taules |
DESCRIBE |
Mostrar els atributs d’una taula |
LOAD DATA |
Poblar una taula amb un fitxer de registres |
INSERT |
Poblar una taula amb un registre |
UPDATE |
Actualitzar un registre de la taula |
DELETE |
Esborrar un registre de la taula |
SELECT |
Realitzar una consulta sobre una o més taules |
Help |
Mostrar ajuda sobre una ordre del sistema |
Pager |
Mostrar llistats pàgina a pàgina amb un altre programa |
Source |
Executar un script d’ordres de SQL |
Status |
Mostrar informació sobre l’estat del sistema |
System |
Executar una ordre del terminal |
Warnings |
Mostrar avisos del sistema |
Quit |
Sortir del gestor MySQL |
Exit |
Sortir del gestor MySQL |
Mysql |
Ordre del terminal per invocar el gestor MySQL |
Mysqldump |
Ordre del terminal per al backup d’una base de dades |
El SGBD MySQL permet gestionar múltiples bases de dades, implementant un sistema de seguretat basat en autoritzacions. Un cop instal·lat el servidor al nostre entorn Linux, es crea inicialment un usuari amb el rol d’administrador (en anglès, root) amb tots els permisos. Per regla general, només l’usuari amb aquest perfil posseeix els permisos suficients per gestionar el conjunt d’usuaris i bases de dades en la seva totalitat. D’aquesta manera, l’administrador garantirà l’accés a una determinada base de dades exclusivament a un grup d’usuaris establert prèviament. Malgrat que es pot optar per treballar directament com a administrador, sempre és recomanable que configurem un nou compte al nostre nom com a usuari convencional per autoritzar-lo posteriorment a treballar amb una base de dades en concret.
En definitiva, el protocol que hem de seguir per dur a terme la nostra feina amb el gestor de bases de dades consisteix en dues fases:
- Invoquem l’intèrpret de SQL com a administrador, realitzem les següents tasques i abandonem el programa:
- Creem un nou usuari al nostre nom.
- Creem una nova base de dades.
- Autoritzem el nou usuari a treballar amb aquesta base de dades.
- Accedim a l’intèrpret de SQL amb el nostre propi usuari i procedim a interactuar amb la nova base de dades:
- Especifiquem que anem a treballar amb aquesta base de dades.
- Creem noves taules (buides) dins de la base de dades.
- Inserim nous registres en aquestes taules. També podem modificar-los i eliminar-los.
- Realitzem consultes sobre els registres de les taules per obtenir la informació desitjada.
Per començar a treballar primer hem d’executar el programa mysql des del nostre terminal de Linux emprant l’usuari root:
L’ordre CREATE USER
permet a l’usuari root donar d’alta un nou usuari en el nostre sistema. És recomanable assignar una contrasenya a cada nou usuari del nostre sistema:
Ara, actuant com a administradors, crearem un nou usuari anomenat eblanco. Per indicar que aquest usuari treballarà localment des de la nostra màquina, que actua de servidor, emprarem el terme local.
En alguns exemples, perquè siguin més comprensibles, estructurarem les instruccions de SQL en diverses línies. Després d’introduir cada línia de l’ordre pressionant la tecla «Enter», l’intèrpret de MySQL inserirà els símbols -> per denotar que encara no hem acabat d’introduir l’ordre completa. MySQL no procedirà a executar l’ordre fins a reconèixer el caràcter «;».
Us animem a reproduir al vostre ordinador les ordres de SQL presentades en aquesta unitat.
Existeixen diverses ordres per gestionar el conjunt de bases de dades del sistema (consulteu taula 1). En aquest moment hem de procedir a crear la base de dades on treballarà el nou usuari amb l’ordre CREATE DATABASE
:
A continuació, creem la base de dades cataleg i posteriorment emprem l’ordre SHOW DATABASES
per obtenir el llistat de bases de dades existents. Podem comprovar que la nova base de dades ha estat creada correctament:
L’administrador concedeix permisos sobre les operacions que un determinat grup d’usuaris pot realitzar sobre la base de dades. L’ordre GRANT
permet autoritzar l’accés d’un usuari a una base de dades en particular:
Per tancar la feina de l’administrador, hem de garantir l’accés a la nova base de dades cataleg al nostre usuari eblanco emprant l’ordre GRANT
. Amb la clàusula ALL, l’administrador concedeix el conjunt complet de permisos a aquest usuari, encara que exclusivament sobre aquesta base de dades. Si volem eliminar privilegis a un usuari hem d’utilitzar l’ordre REVOKE
.
Finalment, per abandonar l’execució del programa mysql com a administradors, podem emprar les ordres quit
o exit
.
A partir d’aquest instant, a l’hora d’executar el programa mysql treballarem sobre la nostra base de dades amb el nou usuari eblanco. En primer lloc, hem d’accedir al gestor de MySQL emprant el nom d’usuari i la contrasenya que hem creat.
Com que és la primera vegada que hi accedim amb aquest usuari, obtindrem informació sobre el llistat de les bases de dades accessibles utilitzant l’ordre SHOW DATABASES
.
Com mostrem a continuació, en la figura 14, el nostre nou usuari pot treballar amb dues bases de dades: cataleg i una segona base de dades (information_schema) que conté informació interna sobre la configuració del sistema.
Amb l’ordre SHOW GRANTS
podem veure també les autoritzacions que l’administrador ha concedit a aquest usuari.
Qualsevol usuari, una vegada dins del sistema, ha d’especificar el nom de la base de dades que ha d’utilitzar abans de començar a realitzar operacions sobre ella. Per indicar el nom de la base de dades que seleccionarem, farem servir l’ordre USE:
Com que desitgem treballar amb la base de dades cataleg, procedim a declarar aquest fet en l’intèrpret de MySQL. Un cop aquesta instrucció ha estat executada amb èxit, ja estem en disposició de crear les taules que serveixen com a suport de les entitats i les relacions dissenyades amb anterioritat per poblar-les posteriorment amb nous registres.