Salta el contingut

DAM - DAW - MP 0484 Bases de Dades - NF5

L'entorn de treball

Treballem amb el SGBDR (Sistema Gestor de Bases de Dades Relacional) MariaDB/MySQL que el trobem per a totes les plataformes i és software lliure. Així mateix s'utilitza molt en entorns web i és el que s'usa a segon.

XAMPP

Per treballar amb ell, hem instal·lat un paquet web anomenat XAMPP que ens instal·la, entre altres, un servidor web (Apache), un servidor de bases de dades (MariaDB o MySQL) i utilitza el llenguatge de programació PHP i Perl.

La X ens indica que el tenim per vàries plataformes (també trobareu LAMPP per Linux, WAMPP per Windows, etc). https://www.apachefriends.org/

No cal instal·lar el servidor Tomcat ni Filezilla ni Mercury.

Només instal·lem:

  • servidor web - Apache: ja ve marcat per defecte i no el podem desmarcar

  • servidor de bases de Dades - MySQL: l'instal·lador en proposa MySQL però ens instal·larà MariaDB

  • llenguatge de programació - PHP: llenguatge de backend que interpretarà el servidor web

  • eina d'administració web de Mysql - phpMyAdmin: eina web per administrar i treballar amb el SGBDR MariaDB.

xamppInstall

El xampp l'instal·lem al directori que vulguem (ens proposa C:\xampp i és correcte) i l'iniciem amb un programa que té al directori on l'hem instal·lat anomenat xampp-control.exe.

Una vegada iniciat el trobarem amb la icona al costat del rellotge del sistema (en windows), Icona xampp i podem escollir la opció Show/Hide per a mostrar-lo en pantalla. Podem canviar-ne alguns paràmetres de la configuració amb la opció Config Configuració.

Per poder desar els paràmetres canviats en el Config

Cal tenir permís de modificació sobre el fitxer xampp-control.ini.

Afegiu-vos aquest permís o doneu-vos Control Total.

Cal tenir sempre iniciat el servidor MySQL (port 3306) per tenir el SGBDR funcionant. Panell de control del xampp

my.ini

Per treballar amb un SQL més estàndard, modifiquen el fitxer my.ini per tal d'afegir, al final del paràmetre sql_mode les opcions ONLY_FULL_GROUP_BY i STRICT_TRANS_TABLES de manera que la línia pot quedar-nos de la següent forma, segons el que tinguem per defecte:

sql_mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,NO_ENGINE_SUBSTITUTION,ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES

Per editar el fitxer premem el botó Config del MySQL

myini

La shell

Per iniciar un client mysql tenim la opció de la Shell .

Iniciarem sessió Client amb la comanda

mysql -u <usuari> [ -p[<password>] ] [<nomDeLaBaseDeDades> ]

Si l'usuari té password cal posar -p i si volem escriure'l, perquè no ens el demani, cal que l'enganxem al -p.

El fet de posar la base de dades és opcional.

L'usuari root per defecte no té password.

IMPORTANT: Per a poder tractar bé els accents, ç, ñ, etc, cal indicar el joc de caràcters amb la opció --default-character-set <codificació>. A la comanda mysql cal especificar el joc de caràcters cp850 de manera que la instrucció mysql ens quedarà de la següent forma:

mysql -u <usuari> [ -p[<password>] ] --default-character-set cp850 [<nomDeLaBaseDeDades> ]

Una vegada iniciada la sessió també podem modificar-ho amb la comanda SET NAMES cp850;

Instrucció per executar dins el mysql
SET NAMES cp850;
Exemples d'inici de sessió
# mysql -u --default-character-set cp850 root
# mysql -u usuari -p --default-character-set cp850
# mysql -u usuari -ppassword --default-character-set cp850
# mysql -u usuari -ppassword --default-character-set cp850 baseDeDades

El millor és crear-nos un fitxer mysql.bat, al directori on executem la comanda, C:\xampp\, que executi la comanda mysql amb el paràmetre --default-character-set cp850

Hi posarem el següent contingut

mysql.exe --default-character-set cp850 %*

Això podem fer-ho obrint una shell des del botó shell del panell de control del xampp i escrivint:

echo mysql.exe --default-character-set cp850 %* > mysql.bat

Instruccions dins la comanda mysql.exe

Per veure les bases de dades a les que tenim accés

show databases;

Per utilitzar-ne una

use basededades;

Per anomenar els objectes, podem escriure el nom de la base de dades al davant.

SELECT * FROM information_schema.user_privileges;

O bé si estem dins la base de dades, això serà opcional.

use information_schema;
SELECT * FROM user_privileges;

Recordeu que per defecte les sentències acaben en punt i coma ;

Si les acabem amb \G, les respostes es presenten per files i no per columnes.

SELECT DISTINCT grantee FROM
    information_schema.user_privileges;
SELECT DISTINCT grantee FROM
    information_schema.user_privileges\G;

Recordeu la comanda source per si volem executar totes les comandes que tinguem en un fitxer .sql.

Cal especificar el PATH, absolut o relatiu, per arribar, des d'on ens trobem, fins el fitxer. Per això, us recomano que, des del CMD i abans d'executar la comanda mysql, aneu al directori on tingueu el fitxer d'scripts sql. Dins el mysql, feu un use per seleccionar la base de dades on voleu que s'executi l'script.

Vegem-ho en el següent exemple:

# cd \Users\Administrador\Desktop\carpetaSQL
Administrador@HOSTNAME C:\Users\Administrador\Desktop\carpetaSQL
# mysql -u root
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 17
Server version: 10.4.25-MariaDB mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> use basededades
Database changed
MariaDB [basededades]> source fitxer.sql
+-----------------------+
| Tables_in_basededades |
+-----------------------+
| taula1                |
| * * * * * * * * * * * |
| taulaN                |
+-----------------------+
N rows in set (0.003 sec)
MariaDB [basededades]>

phpmyadmin

Aquest és un entorn web que ens ve instal·lat amb el xampp.

Si hem iniciat el servidor web i el servidor mysql, hi tindrem accés a través de la pàgina http://localhost/phpmyadmin.

Per defecte ens inicia la sessió sempre amb l'usuari root, que és el DBA – DataBase Administrator. Si volem que ens demani l'usuari a l'iniciar sessió, caldrà canviar un paràmetre del fitxer config.inc.php del phpmyadmin.

Per editar-lo anirem a l'entorn del xampp-control, premerem amb el botó del ratolí sobre el botó Config de la línia de l'Apache i seleccionarem la opció phpMyAdmin (config.inc.php).

Editarem la línia on diu

$cfg['Servers'][$i]['auth_type'] = 'config';

i canviarem config per cookie quedant

$cfg['Servers'][$i]['auth_type'] = 'cookie';

A partir d'aquí i intuïtivament, dins la pàgina http://localhost/phpmyadmin, anirem seleccionant de l'esquerra la base de dades amb la que volem treballar i a la dreta utilitzarem la part de SQL per a llançar les nostres consultes.

DBeaver

Hem instal·lat l'eina visual DBeaver que ens permet connectar a una base de dades (de diferents tipus) i realitzar consultes i altres tasques.

La trobareu a https://dbeaver.io/download/.

Cal descarregar la versió Community. La tenim per a vàries plataformes.

La instal·lem i creem una connexió de tipus MariaDB contra el nostre propi servidor (localhost) amb l'usuari root.

En cas de problemes amb el driver

Podeu accedir a aquest l'enllaç per a resoldre els problemes dels certificats amb Java.

A partir d'aquí us recomano que aneu provant opcions per a veure què es pot fer.

Recordeu que prement F3 podeu obrir una pestanya per executar comandes.

Les comandes cal que acabin totes en punt i coma (;) i podeu escollir executar-ne una, vàries o totes.

dbeaver

phpMyAdmin lletra major

Per poder tenir la lletra on escrivim les sentències SQL més gran que com se'ns presenta ara mateix, podem canviar un parell d'estils. Per això anirem al fitxer phpMyAdmin\themes\pmahomme\css\theme.css de la carpeta del xampp i afegirem, al final de tot, el següent:

code, .CodeMirror pre.CodeMirror-line {
    font-size: +2em;
}

D'aquesta manera la font serà +2em. Podem posar-hi el que creiem convenient.