J'essaie de suivre les instructions ici https://github.com/go-sql-driver/mysql#installation et http://go-database-sql.org/accessing.html créer un sql.db.
La première ligne de mon code a ceci
db, err := sql.Open("mysql", "username@localhost/my_db")
Quand j'ai exécuté le programme sur le terminal, j'ai eu ceci:
Default addr for network ''localhost'' unknown
Pourquoi est-ce? Lorsque j'ai vérifié l'utilisateur et l'hôte de mysql, il indique 'nom d'utilisateur' et 'localhost'. J'ai suivi les paramètres comme ceci:
[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...¶mN=valueN]
Vous voudrez peut-être spécifier le protocole (comme 'tcp
') au lieu de localhost
directement.
Voir ces exemples :
user:password@tcp(localhost:5555)/dbname
Dans ton cas:
username@tcp(localhost)/my_db
Notez que si vous utilisez le protocole par défaut (tcp
) et l’hôte (localhost:3306
), cela pourrait être réécrit comme
user:password@/dbname
j'avais rencontré un problème similaire car j'exécutais des conteneurs Docker sur ma machine virtuelle Linux. Dans mon application (server.go), j'ai modifié la valeur localhost pour utiliser l'adresse IP de ma machine virtuelle, puis générer et exécuter le conteneur avec succès.
conteneur mysql (3307) <-> [(application mysql :: 3307) conteneur] (expose 3000) <-> monde