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,