---
title: M06 Accés a dades. Intro a mysql amb python.
tags: DAM, python, M6
---
<div style="width: 30%; margin-left: auto;">

</div>
<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Llicència de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />Aquesta obra està subjecta a una llicència de <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Reconeixement-CompartirIgual 4.0 Internacional de Creative Commons</a>
# M06 Accés a dades. Intro a mysql amb python.
## Instal·lació de dependències i adequació de l'entorn.
Abans de començar a treballar amb mysql amb python necessitem instal·lar dos mòduls: **'python3-mysqldb'** i **'python3-mysql.connector'**.
```bash=
$ sudo apt install python3-mysqldb python3-mysql.connector
```
I si volem que la nostra màquina sigui alhora el SGBD, també necessitem instal·lar el servidor de mysql o de mariadb i tampoc estaria de més instal·lar també el client.
```bash=
$ sudo apt install mariadb-server mariadb-client
```
Ara ja podem accedir all nostre SGBD com a usuari root.
```bash=
$ sudo mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 31
Server version: 10.11.4-MariaDB-1 Ubuntu 23.10
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)]>
```
No hem d'utilitzar mai aquest usuari des dels nostres programes, hem de crear usuaris específics per a cada aplicació per motius de seguretat.
Exemple de creació de la base de dades **dam_m6** i l'usuari **dam_app** per simplicitat, en aquest mòdul utilitzarem tots el mateix nom per a la base de dades, el mateix nom d'usuari i el mateix password que serà '1234':
```=
MariaDB [(none)]> create database dam_m6;
Query OK, 1 row affected (0,001 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| dam_m6 |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0,001 sec)
MariaDB [(none)]> create user 'dam_app'@'localhost' identified by '1234';
Query OK, 0 rows affected (0,010 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON dam_m6.* TO 'dam_app'@'localhost' WITH
GRANT OPTION;
Query OK, 0 rows affected (0,009 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0,001 sec)
MariaDB [(none)]> quit
Bye
```
I a partir d'ara utilitzarem aquest usuari per a gestiona aquesta base de dades:
```
$ mysql -u dam_app -p dam_m6
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 33
Server version: 10.11.4-MariaDB-1 Ubuntu 23.10
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 [dam_m6]>
```
:fireworks: Tot preparat per a començar a utilitzar la nostra base de dades.
## Provant el nou SGBD i la seva connexió des de python.
```python=
import mysql.connector
mydb = mysql.connector.connect(
host="localhost",
user="dam_app",
password="1234"
)
print(mydb)
```
Exemple extret de: [w3schools](https://www.w3schools.com/python/python_mysql_getstarted.asp)