From 4da56b65ab5f19564fea10abbf8f338b40a45c68 Mon Sep 17 00:00:00 2001 From: Ed Dawley <ed@eddawley.com> Date: Wed, 23 Dec 2015 15:06:28 -0600 Subject: [PATCH 1/2] Fixes #2818. Adds support for mysql backends via unix sockets --- conf/defaults.ini | 4 +++- pkg/services/sqlstore/sqlstore.go | 9 +++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/conf/defaults.ini b/conf/defaults.ini index 3655a48a18a..c241fc3643c 100644 --- a/conf/defaults.ini +++ b/conf/defaults.ini @@ -79,7 +79,9 @@ provider = file # file: session dir path, is relative to grafana data_path # redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=grafana` # postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable -# mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1:3306)/database_name` +# mysql: go-sql-driver/mysql dsn config string, examples: +# `user:password@tcp(127.0.0.1:3306)/database_name` +# `user:password@unix(1/var/run/mysqld/mysqld.sock)/database_name` # memcache: 127.0.0.1:11211 diff --git a/pkg/services/sqlstore/sqlstore.go b/pkg/services/sqlstore/sqlstore.go index 88c35d630f8..50b6e931c7c 100644 --- a/pkg/services/sqlstore/sqlstore.go +++ b/pkg/services/sqlstore/sqlstore.go @@ -113,8 +113,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.Pwd, DbCfg.Host, DbCfg.Name) + protocol := "tcp" + if strings.HasPrefix(DbCfg.Host, "/") { + protocol = "unix" + } + + cnnstr = fmt.Sprintf("%s:%s@%s(%s)/%s?charset=utf8", + DbCfg.User, DbCfg.Pwd, protocol, DbCfg.Host, DbCfg.Name) case "postgres": var host, port = "127.0.0.1", "5432" fields := strings.Split(DbCfg.Host, ":") From ec36e2836878cbad0ba4bb536bf1461668ad15ba Mon Sep 17 00:00:00 2001 From: Ed Dawley <ed@eddawley.com> Date: Wed, 23 Dec 2015 15:15:59 -0600 Subject: [PATCH 2/2] Small typo in comment --- conf/defaults.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/defaults.ini b/conf/defaults.ini index c241fc3643c..0693044dbbb 100644 --- a/conf/defaults.ini +++ b/conf/defaults.ini @@ -81,7 +81,7 @@ provider = file # postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable # mysql: go-sql-driver/mysql dsn config string, examples: # `user:password@tcp(127.0.0.1:3306)/database_name` -# `user:password@unix(1/var/run/mysqld/mysqld.sock)/database_name` +# `user:password@unix(/var/run/mysqld/mysqld.sock)/database_name` # memcache: 127.0.0.1:11211