From 2bfe2ddb6dcc9ed3e8e4ca7f04f1b86a3d106a6d Mon Sep 17 00:00:00 2001 From: Tomcat Date: Sat, 14 Mar 2015 02:21:47 +0800 Subject: [PATCH] Add mysql unix socket support. If the host setting looks like a unix socket (leading by char '/'), will use unix(host) as connection string --- models/models.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/models/models.go b/models/models.go index a9436fca8..b7986fed1 100644 --- a/models/models.go +++ b/models/models.go @@ -89,8 +89,13 @@ func getEngine() (*xorm.Engine, error) { cnnstr := "" switch DbCfg.Type { case "mysql": - cnnstr = fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8", - DbCfg.User, DbCfg.Passwd, DbCfg.Host, DbCfg.Name) + if DbCfg.Host[0] == '/' { // looks like a unix socket + cnnstr = fmt.Sprintf("%s:%s@unix(%s)/%s?charset=utf8", + DbCfg.User, DbCfg.Passwd, DbCfg.Host, DbCfg.Name) + } else { + cnnstr = fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8", + DbCfg.User, DbCfg.Passwd, DbCfg.Host, DbCfg.Name) + } case "postgres": var host, port = "127.0.0.1", "5432" fields := strings.Split(DbCfg.Host, ":")