
Security News
ECMAScript 2025 Finalized with Iterator Helpers, Set Methods, RegExp.escape, and More
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
github.com/lestrrat-go/test-mysqld
Create real MySQL server instance for testing
By default importing github.com/lestrrat-go/test-mysqld
will import package
mysqltest
import (
"database/sql"
"log"
"github.com/lestrrat-go/test-mysqld"
)
mysqld, err := mysqltest.NewMysqld(nil)
if err != nil {
log.Fatalf("Failed to start mysqld: %s", err)
}
defer mysqld.Stop()
db, err := sql.Open("mysql", mysqld.Datasource("test", "", "", 0))
// Now use db, which is connected to a mysql db
go-test-mysqld
is a port of Test::mysqld
When you create a new struct via NewMysqld()
a new mysqld instance is
automatically setup and launched. Don't forget to call Stop()
on this
struct to stop the launched mysqld
If you want to customize the configuration, create a new config and set each field on the struct:
config := mysqltest.NewConfig()
config.SkipNetworking = false
config.Port = 13306
// Starts mysqld listening on port 13306
mysqld, _ := mysqltest.NewMysqld(config)
DSN strings can be generated using the DSN
method:
// Use default
dsn := mysqld.DSN()
// Pass explicit parameters
dsn := mysqld.DSN(mysqltest.WithUser("foo"), mysqltest.WithPassword("passw0rd!"))
// Tell the mysql driver to parse time values
dsn := mysqld.DSN(mysqltest.WithParseTime(true))
// ...And pass the dsn to sql.Open
db, err := sql.Open("mysql", dsn)
Following is a list of possible parameters to DSN
. I
Option | Description | Default |
---|---|---|
mysqltest.WithProto(string) | Specifies the protocol ("unix" or "tcp") | Depends on value of config.SkipNetworking |
mysqltest.WithSocket(string) | Specifies the path to the unix socket | value of config.Socket |
mysqltest.WithHost(string) | Specifies the hostname | value of config.BindAddress |
mysqltest.WithPort(int) | Specifies the port number | value of config.Port |
mysqltest.WithUser(string) | Specifies the username | "root" |
mysqltest.WithPassword(string) | Specifies the password | "" |
mysqltest.WithDbname(string) | Specifies the database name to connect | "test" |
mysqltest.WithParseTime(bool) | Specifies if mysql driver should parse time values to time.Time | false |
mysqltest.WithMultiStatements(bool) | Specifies if mysql driver should allow multi statement in a SQL file | false |
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ECMAScript 2025 introduces Iterator Helpers, Set methods, JSON modules, and more in its latest spec update approved by Ecma in June 2025.
Security News
A new Node.js homepage button linking to paid support for EOL versions has sparked a heated discussion among contributors and the wider community.
Research
North Korean threat actors linked to the Contagious Interview campaign return with 35 new malicious npm packages using a stealthy multi-stage malware loader.