J'ai un Raspberry Pi qui stocke les données de température pour l'activité de homebrewing. Je crée une application Spring MVC sur mon ordinateur et je souhaite exploiter les données. Mon Pi et mon ordinateur sont tous deux sur le réseau local. Je peux parfaitement SSH et FTP dans mon RPi.
mysql --192.168.1.102 --u root -p db
Provoque un "Impossible de se connecter au serveur MySQL sur '192.168.1.102'".
Mon Java ne se connecte pas non plus, évidemment.
SHOW VARIABLES WHERE VARIABLE_NAME = 'port' ;
renvoie le port par défaut, 3306.
Existe-t-il un paramètre qui doit être activé pour autoriser les connexions à distance dans MySQL?
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'IP de votre RPi sur le réseau (qui semble être 192.168.1.102 dans votre exemple). Écrivez les changements.
Redémarrez 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éez un utilisateur:
CREATE USER '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
Accordez des autorisations aux bases de données et aux tables pertinentes:
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
J'espère que cela devrait le faire!
Ce qui suit a fonctionné pour moi, grâce à un commentaire trouvé sur this instructable:
GRANT ALL ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'your_password_here';
(J'ai utilisé 192.168.1.% Pour que tout ordinateur de mon réseau puisse s'y connecter)Sudo nano /etc/mysql/my.cnf
) fichier et recherchez "bind-address" et commentez ceci (mettez un # devant la ligne)service mysql reload
)service mysql restart
)Si votre problème ne parvient pas à se connecter à distance avec MySQL sur Raspberry Pi, essayez les étapes ci-dessous. J'ai eu le même problème et l'ai résolu en exécutant les commandes ci-dessous.
1) Sudo nano /etc/mysql/my.cnf
2) # bind-address = 127.0.0.1
// commente cette ligne
bind-address = 0.0.0.0 //add this line just below above line
3) Sudo /etc/init.d/mysql restart
// redémarrer mysql
4) Sudo mysql -u root -p
// connectez-vous à mysql cli en tant qu'utilisateur 'root'
5) GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'beta' WITH GRANT OPTION;
Ici, "root" est l'utilisateur mysql et "beta" est le mot de passe et ici les privilèges sont définis pour "root". Modifiez-le en conséquence et exécutez la requête ci-dessus dans mysql cli.
Bonne chance !!!