Skip to content

Commit

Permalink
MariaDB: Connect via Unix domain socket if address starts with "/"
Browse files Browse the repository at this point in the history
  • Loading branch information
lastzero committed Feb 23, 2022
1 parent 1f47a3e commit 9c1325f
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions internal/config/db.go
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,21 @@ func (c *Config) DatabaseDsn() string {
if c.options.DatabaseDsn == "" {
switch c.DatabaseDriver() {
case MySQL, MariaDB:
address := c.DatabaseServer()

// Connect via TCP or Unix Domain Socket?
if strings.HasPrefix(address, "/") {
log.Debugf("mariadb: connecting via Unix domain socket")
address = fmt.Sprintf("unix(%s)", address)
} else {
address = fmt.Sprintf("tcp(%s)", address)
}

return fmt.Sprintf(
"%s:%s@tcp(%s)/%s?charset=utf8mb4,utf8&collation=utf8mb4_unicode_ci&parseTime=true",
"%s:%s@%s/%s?charset=utf8mb4,utf8&collation=utf8mb4_unicode_ci&parseTime=true",
c.DatabaseUser(),
c.DatabasePassword(),
c.DatabaseServer(),
address,
c.DatabaseName(),
)
case Postgres:
Expand Down

0 comments on commit 9c1325f

Please sign in to comment.