Di recente ho avuto lo stesso problema anch'io. L'ho fatto funzionare procedendo come segue:
Modifica configurazione MySQL
Per impostazione predefinita, MySQL non è configurato per accettare connessioni remote. Puoi abilitare le connessioni remote modificando il file di configurazione:
sudo nano /etc/mysql/my.cnf
Trova il [mysqld]
sezione. La riga che devi modificare è bind-address
, che dovrebbe essere impostato sul valore predefinito di 127.0.0.1
. Vuoi modificare questa riga per mostrare invece l'IP del tuo RPi sulla rete (che sembrerebbe essere 192.168.1.102 dal tuo esempio). Scrivi le modifiche.
Riavvia il servizio MySQL
sudo service mysql restart
Imposta autorizzazioni MySQL
Connettiti alla tua istanza MySQL come root:
mysql -p -u root
Crea un utente:
CREATE USER '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
- Gli apostrofi ( ' ) nella sintassi sono obbligatori
- L'indirizzo IP è l'indirizzo IP del dispositivo sulla rete da cui stai tentando di connetterti
Concedi le autorizzazioni ai database e alle tabelle pertinenti:
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
- I parametri sono quelli che hai utilizzato per creare il tuo utente nel passaggio precedente
- Il * concederà l'accesso a tutte le tabelle all'interno del database specificato. In alternativa puoi specificare una tabella specifica
- Probabilmente vorresti rafforzare la sicurezza concedendo solo i privilegi pertinenti, ma questo dovrebbe essere sufficiente per verificarne il funzionamento
Si spera che dovrebbe farlo!