Eu mesmo tive recentemente o mesmo problema. Consegui fazer funcionar fazendo o seguinte:
Editar configuração do MySQL
Por padrão, o MySQL não está configurado para aceitar conexões remotas. Você pode habilitar conexões remotas modificando o arquivo de configuração:
sudo nano /etc/mysql/my.cnf
Encontre o
[mysqld]
seção. A linha que você precisa alterar é bind-address
, que deve ser definido com o valor padrão de 127.0.0.1
. Você deseja editar esta linha para mostrar o IP do seu RPi na rede (que parece ser 192.168.1.102 no seu exemplo). Escreva as alterações. Reinicie o serviço MySQL
sudo service mysql restart
Configurar permissões do MySQL
Conecte-se à sua instância MySQL como root:
mysql -p -u root
Crie um usuário:
CREATE USER '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
- Os apóstrofos ( ' ) na sintaxe são obrigatórios
- O endereço IP é o endereço IP do dispositivo na rede da qual você está tentando se conectar
Conceda permissões aos bancos de dados e tabelas relevantes:
GRANT ALL PRIVILEGES ON <database>.* TO '<username>'@'<ip_address>' IDENTIFIED BY '<password>';
- Os parâmetros são aqueles que você usou para criar seu usuário na etapa anterior
- O * concederá acesso a todas as tabelas do banco de dados especificado. Alternativamente, você pode especificar uma tabela específica
- Você provavelmente gostaria de reforçar a segurança concedendo apenas privilégios relevantes, mas isso deve ser suficiente para testar se funciona
Isso deve esperar fazê-lo!