MySQL SDK by Go.
The following has been implemented:
go get github.com/vczyh/mysql-protocol
conn, err := client.CreateConnection(
client.WithHost("10.0.44.59"),
client.WithPort(3306),
client.WithUser("root"),
client.WithPassword("Unicloud@1221"))
if err != nil {
// handle error
}
if err := conn.Ping(); err != nil {
// handle error
}
userProvider := server.NewMemoryUserProvider()
// user1
_ = userProvider.Create(&server.CreateUserRequest{
User: "root",
Host: "%",
Password: "123456",
Method: auth.SHA256Password,
TLSRequired: false,
})
// user2
_ = userProvider.Create(&server.CreateUserRequest{
User: "root2",
Host: "%",
Password: "123456",
Method: auth.CachingSha2Password,
TLSRequired: false,
})
srv := server.NewServer(
userProvider,
server.NewDefaultHandler(),
server.WithPort(3306),
)
_ = srv.Start()
name | default | description |
---|---|---|
WithVersion() |
"" | Version identifier. |
WithDefaultAuthMethod() |
mysql_native_password |
Authentication plugin. |
WithSHA2Cache() |
DefaultSHA2Cache |
caching_sha2_password caching function implement. |
WithLogger() |
DefaultLogger |
Implement of logger write all messages to. |
WithUseSSL() |
false |
Whether to open SSL/TLS. Use automatically generated key and certificates if it's true and WithSSLCA() WithSSLCert() WithSSLKey() are not specified. |
WithCertsDir() |
"" | At startup, the server automatically generates server-side and client-side SSL/TLS certificate and key files, include CA certificate and key file. Default don't write them to local file system. If WithCertsDir() not empty, write those files to the directory, otherwise read them instead of generating. |
WithSSLCA() |
automatically generate | The path name of the Certificate Authority (CA) certificate file in PEM format. The file contains a list of trusted SSL Certificate Authorities. |
WithSSLCert() |
automatically generate | The path name of the server SSL public key certificate file in PEM format. |
WithSSLKey() |
automatically generate | The path name of the server SSL private key file in PEM format. |
WithRSAKeysDir() |
"" | At startup, the server automatically generates private and public key. Default don't write them to local file system. If WithRSAKeysDir() not empty, write those files to the directory, otherwise read them instead of generating. The key pair is used by sha256_password when WithSHA256PasswordPrivateKeyPath() and WithSHA256PasswordPublicKeyPath() are not specified, or used by caching_sha2_password when WithCachingSHA2PasswordPrivateKeyPath() and WithCachingSHA2PasswordPublicKeyPath() are not specified. |
WithCachingSHA2PasswordPrivateKeyPath() |
automatically generate | Its value is the path name of the RSA private key file for the caching_sha2_password authentication plugin. |
WithCachingSHA2PasswordPublicKeyPath() |
automatically generate | Its value is the path name of the RSA public key file for the caching_sha2_password authentication plugin. |
WithSHA256PasswordPrivateKeyPath() |
automatically generate | Its value is the path name of the RSA private key file for the sha256_password authentication plugin. |
WithSHA256PasswordPublicKeyPath() |
automatically generate | Its value is the path name of the RSA public key file for the sha256_password authentication plugin. |