MCPcopy Create free account
hub / github.com/bytebase/bytebase / Open

Method Open

backend/plugin/db/mysql/mysql.go:79–113  ·  view source on GitHub ↗

Open opens a MySQL driver.

(ctx context.Context, dbType storepb.Engine, connCfg db.ConnectionConfig)

Source from the content-addressed store, hash-verified

77
78// Open opens a MySQL driver.
79func (d *Driver) Open(ctx context.Context, dbType storepb.Engine, connCfg db.ConnectionConfig) (db.Driver, error) {
80 defer func() {
81 for _, f := range d.openCleanUp {
82 f()
83 }
84 }()
85
86 var dsn string
87 var err error
88 switch connCfg.DataSource.GetAuthenticationType() {
89 case storepb.DataSource_GOOGLE_CLOUD_SQL_IAM:
90 dsn, err = getCloudSQLConnection(ctx, connCfg)
91 case storepb.DataSource_AWS_RDS_IAM:
92 dsn, err = d.getRDSConnection(ctx, connCfg)
93 default:
94 dsn, err = d.getMySQLConnection(connCfg)
95 }
96 if err != nil {
97 return nil, err
98 }
99
100 db, err := sql.Open("mysql", dsn)
101 if err != nil {
102 return nil, err
103 }
104 d.dbType = dbType
105 d.db = db
106 // TODO(d): remove the work-around once we have clean-up the migration connection hack.
107 db.SetConnMaxLifetime(2 * time.Hour)
108 db.SetMaxOpenConns(50)
109 db.SetMaxIdleConns(15)
110 d.databaseName = connCfg.ConnectionContext.DatabaseName
111
112 return d, nil
113}
114
115func (d *Driver) getMySQLConnection(connCfg db.ConnectionConfig) (string, error) {
116 protocol := "tcp"

Callers

nothing calls this directly

Implementers 15

MockDriverbackend/plugin/advisor/utils_for_tests
Driverbackend/plugin/db/bigquery/bigquery.go
Driverbackend/plugin/db/mongodb/mongodb.go
Driverbackend/plugin/db/trino/trino.go
Driverbackend/plugin/db/redshift/redshift.go
Driverbackend/plugin/db/oracle/oracle.go
Driverbackend/plugin/db/dynamodb/dynamodb.go
Driverbackend/plugin/db/cosmosdb/cosmosdb.go
Driverbackend/plugin/db/spanner/spanner.go
Driverbackend/plugin/db/mssql/mssql.go
Driverbackend/plugin/db/mysql/mysql.go
Driverbackend/plugin/db/pg/pg.go

Calls 6

getRDSConnectionMethod · 0.95
getMySQLConnectionMethod · 0.95
fFunction · 0.85
getCloudSQLConnectionFunction · 0.85
OpenMethod · 0.65
GetAuthenticationTypeMethod · 0.45

Tested by

no test coverage detected