mysql

package
v0.37.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2024 License: Apache-2.0 Imports: 10 Imported by: 15

Documentation

Overview

Package mysql provides functions to open MySQL databases with OpenCensus instrumentation.

Index

Examples

Constants

View Source
const Scheme = "mysql"

Scheme is the URL scheme this package registers its URLOpener under on DefaultMux.

Variables

This section is empty.

Functions

func ConfigFromURL added in v0.21.0

func ConfigFromURL(u *url.URL) (cfg *mysql.Config, err error)

ConfigFromURL creates a mysql.Config from URL.

func Open

func Open(ctx context.Context, urlstr string) (*sql.DB, error)

Open opens the bucket identified by the URL given. URL openers must be registered in the DefaultURLMux, which is typically done in driver packages' initialization.

See the URLOpener documentation in driver subpackages for more details on supported scheme(s) and URL parameter(s).

Example
package main

import (
	"context"
	"log"

	"gocloud.dev/mysql"
)

func main() {
	// PRAGMA: This example is used on gocloud.dev; PRAGMA comments adjust how it is shown and can be ignored.
	// PRAGMA: On gocloud.dev, hide lines until the next blank line.
	ctx := context.Background()

	// Replace this with your actual settings.
	db, err := mysql.Open(ctx, "mysql://user:password@localhost/testdb")
	if err != nil {
		log.Fatal(err)
	}
	defer db.Close()

	// Use database in your program.
	db.Exec("CREATE TABLE foo (bar INT);")
}
Output:

Types

type MySQLURLOpener

type MySQLURLOpener interface {
	OpenMySQLURL(ctx context.Context, u *url.URL) (*sql.DB, error)
}

MySQLURLOpener implements MySQLURLOpener and can open connections based on a URL. The opener must not modify the URL argument. OpenMySQLURL must be safe to call from multiple goroutines.

This interface is generally implemented by types in driver packages.

type URLMux

type URLMux struct {
	// contains filtered or unexported fields
}

URLMux is a URL opener multiplexer. It matches the scheme of the URLs against a set of registered schemes and calls the opener that matches the URL's scheme.

The zero value is a multiplexer with no registered schemes.

func DefaultURLMux

func DefaultURLMux() *URLMux

DefaultURLMux returns the URLMux used by OpenMySql.

Driver packages can use this to register their MySQLURLOpener on the mux.

func (*URLMux) OpenMySQL

func (mux *URLMux) OpenMySQL(ctx context.Context, urlstr string) (*sql.DB, error)

OpenMySQL calls OpenMySQLURL with the URL parsed from urlstr. OpenMySQL is safe to call from multiple goroutines.

func (*URLMux) OpenMySQLURL

func (mux *URLMux) OpenMySQLURL(ctx context.Context, u *url.URL) (*sql.DB, error)

OpenMySQLURL dispatches the URL to the opener that is registered with the URL's scheme. OpenMySQLURL is safe to call from multiple goroutines.

func (*URLMux) RegisterMySQL

func (mux *URLMux) RegisterMySQL(scheme string, opener MySQLURLOpener)

RegisterMySQL registers the opener with the given scheme. If an opener already exists for the scheme, RegisterMySQL panics.

type URLOpener

type URLOpener struct {
	TraceOpts []ocsql.TraceOption
}

URLOpener opens URLs like "mysql://" by using the underlying MySQL driver. like "mysql://user:password@localhost:3306/mydb".

func (*URLOpener) OpenMySQLURL

func (uo *URLOpener) OpenMySQLURL(_ context.Context, u *url.URL) (*sql.DB, error)

OpenMySQLURL opens a new database connection wrapped with OpenCensus instrumentation.

Directories

Path Synopsis
Package awsmysql provides connections to AWS RDS MySQL instances.
Package awsmysql provides connections to AWS RDS MySQL instances.
Package azuremysql provides connections to Azure Database for MySQL.
Package azuremysql provides connections to Azure Database for MySQL.
Package gcpmysql provides connections to managed MySQL Cloud SQL instances.
Package gcpmysql provides connections to managed MySQL Cloud SQL instances.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL