You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
package mysql
import ( "fmt" "database/sql"
"github.com/chrislusf/seaweedfs/weed/filer2" "github.com/spf13/viper" _ "github.com/go-sql-driver/mysql" "github.com/chrislusf/seaweedfs/weed/filer2/abstract_sql" )
const ( CONNECTION_URL_PATTERN = "%s:%s@tcp(%s:%d)/%s?charset=utf8" )
func init() { filer2.Stores = append(filer2.Stores, &MysqlStore{}) }
type MysqlStore struct { abstract_sql.AbstractSqlStore }
func (store *MysqlStore) GetName() string { return "mysql" }
func (store *MysqlStore) Initialize(viper *viper.Viper) (err error) { return store.initialize( viper.GetString("username"), viper.GetString("password"), viper.GetString("hostname"), viper.GetString("port"), viper.GetString("database"), viper.GetInt("connection_max_idle"), viper.GetInt("connection_max_open"), ) }
func (store *MysqlStore) initialize(user, password, hostname, port, database string, maxIdle, maxOpen int) (err error) { sqlUrl := fmt.Sprintf(CONNECTION_URL_PATTERN, user, password, hostname, port, database) var dbErr error store.DB, dbErr = sql.Open("mysql", sqlUrl) if dbErr != nil { store.DB.Close() store.DB = nil return fmt.Errorf("can not connect to %s error:%v", sqlUrl, err) }
store.DB.SetMaxIdleConns(maxIdle) store.DB.SetMaxOpenConns(maxOpen) return nil }
|