Przeglądaj źródła

Add socket support for mysql data source

Yuan Liu 7 lat temu
rodzic
commit
36dbc5f51c
1 zmienionych plików z 8 dodań i 1 usunięć
  1. 8 1
      pkg/tsdb/mysql/mysql.go

+ 8 - 1
pkg/tsdb/mysql/mysql.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"reflect"
 	"strconv"
+	"strings"
 
 	"github.com/go-sql-driver/mysql"
 	"github.com/go-xorm/core"
@@ -20,10 +21,16 @@ func init() {
 func newMysqlQueryEndpoint(datasource *models.DataSource) (tsdb.TsdbQueryEndpoint, error) {
 	logger := log.New("tsdb.mysql")
 
+	var protocol string
+	if strings.HasPrefix(datasource.Url, "/") {
+		protocol = "unix"
+	} else {
+		protocol = "tcp"
+	}
 	cnnstr := fmt.Sprintf("%s:%s@%s(%s)/%s?collation=utf8mb4_unicode_ci&parseTime=true&loc=UTC&allowNativePasswords=true",
 		datasource.User,
 		datasource.Password,
-		"tcp",
+		protocol,
 		datasource.Url,
 		datasource.Database,
 	)