Accesso remoto a DB MySQL

In questa pagina, vedremo come creare un accesso remoto al DB, e successivamente gestirlo con uno script in Python.

Per accedere al DB residente nel RaspBerry da un dispositivo remoto è necessario creare un accesso che sia diverso da localhost e successivamente dargli tutti i privilegi per poterlo gestire:

pi@raspberrypi: cd /var/www/html 

pi@raspberrypi: sudo mysql -u root -p

Enter password: inserire la vostra password di root.

Se tutto è andato a buon fine apparirà quanto segue:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 26
Server version: 10.5.15-MariaDB-0+deb11u1 Raspbian 11

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

Ora con dei semplici comandi andremo a creare un nuovo utente con tutti i privilegi:

MariaDB [(none)]> CREATE USER 'nuovo user'@'%' IDENTIFIED BY 'nuova password';
Query OK, 0 rows affected (0.008 sec)

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'nuovo user'@'%' WITH GRANT OPTIO
N;

Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> exit
Bye

 Il nuovo user è stato creato e avrà accesso al DB da remoto perchè al posto di localhost abbiamo inserito il carattere speciale '%' cioè da qualsiasi indirizzo ip; possiamo anche decidere un singolo indirizzo ip o tutti gli ip della nostra rete domestica semplicemente inserendo '192.168.1.%'.

E' possibile controllare e modificare i privilegi dei singoli Account utenti anche da phpMyAdmin:

 ESCAPE='HTML'

Da phpMyAdmin è tuttavia possibile creare un nuovo Account user in modo intuitivo evitando di seguire la procedura descritta sopra, selezionando i privilegi che riteniamo più opportuni.

Qui di fianco ho inserito un semplice script in python che utilizza la libreria mysql connector (da scaricare con pip install mysql-connector-python).

Lo script fa una cosa semplicissima ma sintetizza in poche linee di codice l'accesso al DB che risiede nel RaspBerry e visualizza tutte le tabelle che sono al suo interno; approfondendo l'argomento è possibile creare e cancellare tabelle, inserire dati nelle tabelle e quant'altro.