Hey everyone,
I'm currently setting up a mysql database on DigitalOcean and hit the following error when connecting:
failed to connect to the database: default addr for "DATABASE_CONN_STR" network unknown
Luckily this turned out to be a pretty easy fix. In the mysql driver repo you can see that the only scenario where this error is shown is when the network doesn't match "tcp" or "unix".
// Set default network if empty if cfg.Net == "" { cfg.Net = "tcp" } // Set default address if empty if cfg.Addr == "" { switch cfg.Net { case "tcp": cfg.Addr = "127.0.0.1:3306" case "unix": cfg.Addr = "/tmp/mysql.sock" default: return errors.New("default addr for network '" + cfg.Net + "' unknown") } } else if cfg.Net == "tcp" { cfg.Addr = ensureHavePort(cfg.Addr) }
To fix it, all that was required was to wrap part of the connection string in tcp or unix.
root:password@db-mysite.com:1234/db_name?ssl-mode=required&timeout=10s root:password@tcp(db-mysite.com:1234)/db_name?ssl-mode=required&timeout=10s
Note that the host name and port on the second line is now wrapped in "tcp(...)". In my case I didn't have either set so I find it a bit strange that the "set default address if empty" check was triggered.
Thanks to this stackoverflow post and github link for the info:
| This post is ad-supported |
|
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.