예제 #1
0
파일: driver.go 프로젝트: wangjild/dbatman
func openDBFromNode(node *config.NodeConfig) (*mysql.DB, error) {
	if node == nil {
		return nil, fmt.Errorf("openDBFromNode error node==nil")
	}

	dsn := getDsnFromNode(node)
	db, err := mysql.Open("dbatman", dsn)
	if err != nil {
		log.Errorf("openDBFromNod mysql.open error dsn:%s msg:%s\n", dsn, err.Error())
		return nil, err
	}
	return db, nil
}
예제 #2
0
파일: driver.go 프로젝트: bytedance/dbatman
func openDBFromNodeCfg(nodeCfg *config.NodeConfig) (*mysql.DB, error) {
	if nodeCfg == nil {
		return nil, fmt.Errorf("OpenDBFromNodeCfg error nodeCfg==nil")
	}

	dsn := getDsnFromNodeCfg(nodeCfg)
	db, err := mysql.Open("dbatman", dsn)
	if err != nil {
		log.Errorf("OpenDBFromNodeCfg sql.open error dsn:%s msg:%s", dsn, err.Error())
		return nil, err
	}
	setDBProperty(db, nodeCfg)
	return db, nil
}
예제 #3
0
// return a direct connection to proxy server, this is a
func newSqlDB(dsn string) *mysql.DB {

	db, err := mysql.Open("dbatman", dsn)
	if err != nil {
		fmt.Fprintf(os.Stderr, "%s is unavailable", dsn)
		os.Exit(2)
	}

	if err := db.Ping(); err != nil {
		fmt.Fprintf(os.Stderr, "%s is unreacheable", dsn)
		os.Exit(2)
	}

	return db
}