Sei que a Alura não tem um curso de uso de MySQL no dart/flutter, mas gostaria que se alguém que já tivesse mexido com MySQL me ajudasse.
Achei na internet vários vídeos ensinando como fazer a conexão do MySQL em um programa flutter, basicamente todos eles são iguais entre si, e nos vídeos todos funcionaram.
Peguei o mais simples como exemplo, que vi funcionando no vídeo da pessoa que postou.
Mas no meu caso não funciona.
Antes de prosseguir, eu aproveito para informar
- O banco de dados está ativo (consigo fazer operações como SELECT, INSERT, etc no mesmo via MySQL Workbench)
- O servidor está escutando a porta 3306
- Todas as dependências do programa estão ok.
- Meu firewall está desativado, e não tenho nenhum outro software de proteção ativo.
- As credenciais dentro do programa estão corretas, são as mesmas que uso para entrar no "MySQL Workbench" e manipular o banco.
A seguir, o programa:
import 'package:mysql1/mysql1.dart';
void main() async {
// Parâmetros de conexão
final conn = await MySqlConnection.connect(
ConnectionSettings(
host: 'localhost',
port: 3306,
user: 'root',
password: 'aaaabbbb',
db: 'gas',
),
);
try {
// Consulta os registros da tabela "clientes"
final results = await conn.query('SELECT * FROM clientes');
// Exibe os registros
for (var row in results) {
final cliente = row['cliente'];
final idade = row['idade'];
print('Cliente: $cliente, Idade: $idade');
}
} catch (e) {
// Exibe mensagem de erro em caso de falha na consulta
print('Erro ao consultar a tabela clientes: $e');
}
// Fecha a conexão
await conn.close();
}
A seguir, o erro:
E/flutter ( 3429): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: SocketException: Connection refused (OS Error: Connection refused, errno = 111), address = localhost, port = 38512
Observem que no final da linha, ele diz que recusou a conexão na porta 38512, sendo que a porta especificada foi a 3306.
Outra coisa curiosa, se eu tentar rodar o programa 10 vezes, em cada uma das vezes o valor de “port” vem diferente, nunca se repete.
Não sei de onde ele tira este número, e estou ficando louco já.
Tudo que eu podia checar eu chequei, e aparentemente está tudo certo, usei sugestões de umas 3 inteligências artificiais para me ajudar a conferir os parâmetros, código, firewall, configurações da máquina, etc. e nada deu certo.
Alguma alma caridosa que já tenha trabalhado com MySQL pode me ajudar, por favor ?