@@ -1,7 +1,10 @@
 package sql
 
 import (
+	"crypto/tls"
+	"crypto/x509"
 	"errors"
+	"io/ioutil"
 
 	mysqldriver "github.com/go-sql-driver/mysql"
 	"github.com/jinzhu/gorm"
package sql

import (
	"errors"

	mysqldriver "github.com/go-sql-driver/mysql"
	"github.com/jinzhu/gorm"

	// gorm mysql dialect init registration
	_ "github.com/jinzhu/gorm/dialects/mysql"
)

type mysql struct{}

func (my mysql) connect(connectionString string) (*gorm.DB, error) {
	db, err := gorm.Open("mysql", connectionString)
	if err != nil {
		return nil, err
	}
	return db, nil
}

func validateMySQLConfig(cfg *configuration) error {
	opts, err := mysqldriver.ParseDSN(cfg.ConnectionString)
	if err != nil {
		return sqlError.Wrap(err)
	}

	if !opts.ParseTime {
		return sqlError.Wrap(errors.New("invalid mysql config: missing parseTime=true param in connection_string"))
	}

	return nil
}

Couple thoughts on this (and subsequent) log line First is since we are not using a logger passed in from core, if we're configured to log to file or if we are configured for level above info, this won't have any knowledge. Second, @azdagron is currently working on plugin catalog refactor that will expose logging to plugins as a first class citizen, solving problem 1. Finally, since these messages aren't particularly critical, I might leave them out for now and we can add them later when we have fixed the plugin logging situation (but perhaps as debug?). What do you think? If you feel strongly about these lines, then I recommend we ensure that info level is suitable, and then pass a logger into datastore plugin... but I am not sure it's worth it at this point. Curious to hear @azdagron thoughts too