--- title: M06 Accés a dades. Intro a mysql amb python. tags: DAM, python, M6 --- <div style="width: 30%; margin-left: auto;"> ![](https://hackmd.io/_uploads/HJiR4eGJT.png) </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)