Modifier le paramétrage du RaspberryPi pour accéder à une base de données depuis le réseau
Prérequis :
1 – Avoir installé le serveur LAMP avec la base de données mariaDB et phpMyAdmin sur le RapsberryPi distant.
2 – Avoir créé une base de données : NomDeLaBaseDeDonnees
3 – Sur un autre poste du même réseau avec une configuration serveur+php : Créer une page web contenant une requête SQL en php pour interroger la base de données distante.
Sur le RapsberryPi qui contient la base de données à consulter :
1 – Editer le fichier de configuration : /etc/mysql/mariadb.conf.d/50-server.cnf
:$ sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
-> décommenter la ligne [ port = 3306 ] ( supprimer le signe # en début de ligne)
-> mettre la ligne [ bind-addresss = 127.0.0.1 ] en commentaire : #bind-addresss = 127.0.0.1
Cette ligne restreint par défaut les connexions à des connexions en locales : depuis le RaspberryPi uniquement
Rappel : l’adresse IP 127.0.0.1 est équivalente à localhost : connexion locale
2 – Créer un utilisateur spécifique sur la base de données avec [ % ] comme Host
Vous pouvez utiliser phpMyAdmin en root pour simplifier la procédure et éviter les commandes SQL …
Cet utilisateur peut avoir des droits restreints [uniquement select pour consulter sans modifier] sur une ou plusieurs tables de LA base de données sélectionnée et rien d’autre. Éviter de lui attribuer tous les droits pour des raisons évidentes de sécurité !!!
3 – Redémarrer les services mysql et mariadb
:$ sudo service restart mariadb
:$ sudo service restart mysql
Vous pouvez vérifier que le demon mysql est bien en attente de connexion :
:$ netstat -anp | grep 3306
Vous devriez afficher quelque chose du style :
tcp6. 0. 0. :::3306. :::*. LISTEN –
4 – Pour se connecter à la base de données en php :
$pdo = new PDO(“mysql:host=[ IP du RaspberryPi ];port=3306;dbname=NomDeLaBaseDeDonnees“, ‘utilisateur‘, ‘password‘);
Pour info, vous devriez obtenir une configuration qui ressemble aux copie d’écran ci-dessous :
Ici, l’utilisateur [ Jacques ] n’a accès QUE à la base de données [ Connexion ] et UNIQUEMENT en lecture [ SELECT ]
Si l’utilisateur [Jacques] se connecte via phpMyAdmin par exemple, les autres base de données enregistrées sur le RaspberryPi, voire même les autres tables de la base de données [ Connexion ] auxquelles il n’a pas accès, ne s’affichent pas. De plus, il ne pourra QUE consulter les données.
Fichiers à créer :
-> SQL pour créer une base de données Connexion et la table Badge depuis phpMyAdmin sur le RaspberryPi
-> HTML / php pour se connecter à la base de données et récupérer les informations depuis un serveur distant
===================> LIEN DE TELECHARGEMENT …