J'ai récemment eu le même problème moi-même. Je l'ai fait fonctionner en procédant comme suit :
Modifier la configuration MySQL
Par défaut, MySQL n'est pas configuré pour accepter les connexions à distance. Vous pouvez activer les connexions à distance en modifiant le fichier de configuration :
sudo nano /etc/mysql/my.cnf
Trouvez le [mysqld]
section. La ligne que vous devez modifier est bind-address
, qui doit être défini sur la valeur par défaut de 127.0.0.1
. Vous souhaitez modifier cette ligne pour afficher à la place l'adresse IP de votre RPi sur le réseau (qui semblerait être 192.168.1.102 dans votre exemple). Écrivez les modifications.
Redémarrer le service MySQL
sudo service mysql restart
Configurer les autorisations MySQL
Connectez-vous à votre instance MySQL en tant que root :
mysql -p -u root
Créer un utilisateur :
CREATE USER '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
- Les apostrophes ( ' ) dans la syntaxe sont obligatoires
- L'adresse IP est l'adresse IP de l'appareil sur le réseau à partir duquel vous essayez de vous connecter
Accordez des autorisations aux bases de données et aux tables concernées :
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
- Les paramètres sont ceux que vous avez utilisés pour créer votre utilisateur à l'étape précédente
- Le * accordera l'accès à toutes les tables de la base de données spécifiée. Vous pouvez également spécifier une table spécifique
- Vous voudriez probablement renforcer la sécurité en n'accordant que les privilèges pertinents, mais cela devrait suffire pour tester que cela fonctionne
Cela devrait le faire !