From b524d813ca7ee2935ddc0f0ea86d0bd60fc35888 Mon Sep 17 00:00:00 2001 From: Max Bigras Date: Wed, 4 Dec 2019 09:48:24 -0800 Subject: [PATCH] Add MysqlConfig protocol option (#2161) Enables configuring MySQL to run with unix domain sockets. Closes #2160 --- server/config/config.go | 4 ++++ server/datastore/mysql/mysql.go | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/server/config/config.go b/server/config/config.go index 76ba17a1af..320d5c8199 100644 --- a/server/config/config.go +++ b/server/config/config.go @@ -17,6 +17,7 @@ const ( // MysqlConfig defines configs related to MySQL type MysqlConfig struct { + Protocol string Address string Username string Password string @@ -135,6 +136,8 @@ type KolideConfig struct { // filled into the KolideConfig struct func (man Manager) addConfigs() { // MySQL + man.addConfigString("mysql.protocol", "tcp", + "MySQL server communication protocol (tcp,unix,...)") man.addConfigString("mysql.address", "localhost:3306", "MySQL server address (host:port)") man.addConfigString("mysql.username", "kolide", @@ -253,6 +256,7 @@ func (man Manager) LoadConfig() KolideConfig { return KolideConfig{ Mysql: MysqlConfig{ + Protocol: man.getConfigString("mysql.protocol"), Address: man.getConfigString("mysql.address"), Username: man.getConfigString("mysql.username"), Password: man.getConfigString("mysql.password"), diff --git a/server/datastore/mysql/mysql.go b/server/datastore/mysql/mysql.go index f405556c47..d2a0f64adf 100644 --- a/server/datastore/mysql/mysql.go +++ b/server/datastore/mysql/mysql.go @@ -274,9 +274,10 @@ func registerTLS(config config.MysqlConfig) error { func generateMysqlConnectionString(conf config.MysqlConfig) string { tz := url.QueryEscape("'-00:00'") dsn := fmt.Sprintf( - "%s:%s@(%s)/%s?charset=utf8mb4&parseTime=true&loc=UTC&time_zone=%s&clientFoundRows=true&allowNativePasswords=true", + "%s:%s@%s(%s)/%s?charset=utf8mb4&parseTime=true&loc=UTC&time_zone=%s&clientFoundRows=true&allowNativePasswords=true", conf.Username, conf.Password, + conf.Protocol, conf.Address, conf.Database, tz,