Documentation
¶
Index ¶
- Constants
- func ChangeMasterToError(db *sql.DB, gtid *model.Repl) error
- func ChangeToMasterError(db *sql.DB) error
- func DefaultChangeMasterTo(db *sql.DB, gtid *model.Repl) error
- func DefaultChangeToMaster(db *sql.DB) error
- func DefaultDisableSemiSyncMaster(db *sql.DB) error
- func DefaultEnableSemiSyncMaster(db *sql.DB) error
- func DefaultGetMasterGTID(db *sql.DB) (*model.GTID, error)
- func DefaultGetSlaveGTID(db *sql.DB) (*model.GTID, error)
- func DefaultPurgeBinlogsTo(db *sql.DB, binlog string) error
- func DefaultResetMaster(db *sql.DB) error
- func DefaultResetSlaveAll(db *sql.DB) error
- func DefaultSelectSysVar(db *sql.DB, query string) (string, error)
- func DefaultSetGlobalSysVar(db *sql.DB, varsql string) error
- func DefaultSetReadOnly(db *sql.DB, readonly bool) error
- func DefaultSetSemiWaitSlaveCount(db *sql.DB, count int) error
- func DefaultStartSlave(db *sql.DB) error
- func DefaultStartSlaveIOThread(db *sql.DB) error
- func DefaultStopSlave(db *sql.DB) error
- func DefaultStopSlaveIOThread(db *sql.DB) error
- func DefaultWaitUntilAfterGTID(db *sql.DB, targetGTID string) error
- func Execute(db *sql.DB, query string, args ...interface{}) error
- func ExecuteSuperQueryList(db *sql.DB, queryList []string) error
- func ExecuteSuperQueryListWithTimeout(db *sql.DB, maxTime int, queryList []string) error
- func ExecuteWithTimeout(db *sql.DB, maxTime int, query string, args ...interface{}) error
- func GetMasterGTIDA(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDB(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDC(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDD(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDError(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDPingError(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDA(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDB(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDC(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDError(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDX1(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDX3(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDX5(db *sql.DB) (*model.GTID, error)
- func MockGetClient(t *testing.T, svrConn string) (*xrpc.Client, func())
- func Query(db *sql.DB, query string, args ...interface{}) ([]map[string]string, error)
- func QueryWithTimeout(db *sql.DB, maxTime int, query string, args ...interface{}) ([]map[string]string, error)
- func SetReadOnlyError(db *sql.DB, readonly bool) error
- func StartSlaveError(db *sql.DB) error
- func StartSlaveIOThreadError(db *sql.DB) error
- func StopSlaveError(db *sql.DB) error
- func StopSlaveIOThreadError(db *sql.DB) error
- func WaitUntilAfterGTIDError(db *sql.DB, targetGTID string) error
- type MockGTID
- func (mogtid *MockGTID) ChangeMasterTo(db *sql.DB, gtid *model.Repl) error
- func (mogtid *MockGTID) ChangeToMaster(db *sql.DB) error
- func (mogtid *MockGTID) DisableSemiSyncMaster(db *sql.DB) error
- func (mogtid *MockGTID) EnableSemiSyncMaster(db *sql.DB) error
- func (mogtid *MockGTID) GetMasterGTID(db *sql.DB) (*model.GTID, error)
- func (mogtid *MockGTID) GetSlaveGTID(db *sql.DB) (*model.GTID, error)
- func (mogtid *MockGTID) Ping(db *sql.DB) (*PingEntry, error)
- func (mogtid *MockGTID) PurgeBinlogsTo(db *sql.DB, binlog string) error
- func (mogtid *MockGTID) ResetMaster(db *sql.DB) error
- func (mogtid *MockGTID) ResetSlaveAll(db *sql.DB) error
- func (mogtid *MockGTID) SelectSysVar(db *sql.DB, query string) (string, error)
- func (mogtid *MockGTID) SetGlobalSysVar(db *sql.DB, varsql string) error
- func (mogtid *MockGTID) SetReadOnly(db *sql.DB, readonly bool) error
- func (mogtid *MockGTID) SetSemiWaitSlaveCount(db *sql.DB, count int) error
- func (mogtid *MockGTID) StartSlave(db *sql.DB) error
- func (mogtid *MockGTID) StartSlaveIOThread(db *sql.DB) error
- func (mogtid *MockGTID) StopSlave(db *sql.DB) error
- func (mogtid *MockGTID) StopSlaveIOThread(db *sql.DB) error
- func (mogtid *MockGTID) WaitUntilAfterGTID(db *sql.DB, targetGTID string) error
- type MockUserA
- func (u *MockUserA) ChangeUserPasswd(db *sql.DB, user string, passwd string) error
- func (u *MockUserA) CheckUserExists(db *sql.DB, user string) (bool, error)
- func (u *MockUserA) CreateReplUserWithoutBinlog(db *sql.DB, user string, passwd string) error
- func (u *MockUserA) CreateUser(db *sql.DB, user string, passwd string) error
- func (u *MockUserA) CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
- func (u *MockUserA) DropUser(db *sql.DB, user string, host string) error
- func (u *MockUserA) GetUser(db *sql.DB) ([]model.MysqlUser, error)
- func (u *MockUserA) GrantAllPrivileges(db *sql.DB, user string) error
- func (u *MockUserA) GrantNormalPrivileges(db *sql.DB, user string) error
- func (u *MockUserA) GrantReplicationPrivileges(db *sql.DB, user string) error
- type Mysql
- func (m *Mysql) ChangeMasterTo(repl *model.Repl) error
- func (m *Mysql) ChangeToMaster() error
- func (m *Mysql) ChangeUserPasswd(user string, passwd string) error
- func (m *Mysql) CheckUserExists(user string) (bool, error)
- func (m *Mysql) CreateReplUserWithoutBinlog(user string, passwd string) error
- func (m *Mysql) CreateUser(user string, passwd string) error
- func (m *Mysql) CreateUserWithPrivileges(user, passwd, database, table, host, privs string, ssl string) error
- func (m *Mysql) DisableSemiSyncMaster() error
- func (m *Mysql) DropUser(user string, host string) error
- func (m *Mysql) EnableSemiSyncMaster() error
- func (m *Mysql) GTIDGreaterThan(gtid *model.GTID) (bool, model.GTID, error)
- func (m *Mysql) GetGTID() (model.GTID, error)
- func (m *Mysql) GetMasterGTID() (*model.GTID, error)
- func (m *Mysql) GetMysqlRPC() *MysqlRPC
- func (m *Mysql) GetOption() Option
- func (m *Mysql) GetRepl() model.Repl
- func (m *Mysql) GetSlaveGTID() (*model.GTID, error)
- func (m *Mysql) GetState() State
- func (m *Mysql) GetUser() ([]model.MysqlUser, error)
- func (m *Mysql) GrantAllPrivileges(user string) error
- func (m *Mysql) GrantNormalPrivileges(user string) error
- func (m *Mysql) GrantReplicationPrivileges(user string) error
- func (s *Mysql) IncMysqlDowns()
- func (m *Mysql) Ping()
- func (m *Mysql) PingStart()
- func (m *Mysql) PingStop()
- func (m *Mysql) Promotable() bool
- func (m *Mysql) PurgeBinlogsTo(binlog string) error
- func (m *Mysql) RelayMasterLogFile() string
- func (m *Mysql) ResetMaster() error
- func (m *Mysql) ResetSlaveAll() error
- func (m *Mysql) SetGlobalSysVar(varsql string) error
- func (m *Mysql) SetMasterGlobalSysVar() error
- func (m *Mysql) SetReadOnly() (err error)
- func (m *Mysql) SetReadWrite() (err error)
- func (m *Mysql) SetReplHandler(h ReplHandler)
- func (m *Mysql) SetSemiWaitSlaveCount(count int) error
- func (m *Mysql) SetSlaveGlobalSysVar() error
- func (m *Mysql) SetUserHandler(h UserHandler)
- func (m *Mysql) StartSlave() error
- func (m *Mysql) StartSlaveIOThread() error
- func (m *Mysql) StopSlave() error
- func (m *Mysql) StopSlaveIOThread() error
- func (m *Mysql) WaitMysqlWorks(timeout int) error
- func (m *Mysql) WaitUntilAfterGTID(targetGTID string) error
- type Mysql57
- func (my *Mysql57) ChangeMasterTo(db *sql.DB, master *model.Repl) error
- func (my *Mysql57) ChangeToMaster(db *sql.DB) error
- func (my *Mysql57) DisableSemiSyncMaster(db *sql.DB) error
- func (my *Mysql57) EnableSemiSyncMaster(db *sql.DB) error
- func (my *Mysql57) GetMasterGTID(db *sql.DB) (*model.GTID, error)
- func (my *Mysql57) GetSlaveGTID(db *sql.DB) (*model.GTID, error)
- func (my *Mysql57) Ping(db *sql.DB) (*PingEntry, error)
- func (my *Mysql57) PurgeBinlogsTo(db *sql.DB, binlog string) error
- func (my *Mysql57) ResetMaster(db *sql.DB) error
- func (my *Mysql57) ResetSlaveAll(db *sql.DB) error
- func (my *Mysql57) SetGlobalSysVar(db *sql.DB, varsql string) error
- func (my *Mysql57) SetReadOnly(db *sql.DB, readonly bool) error
- func (my *Mysql57) SetSemiWaitSlaveCount(db *sql.DB, count int) error
- func (my *Mysql57) StartSlave(db *sql.DB) error
- func (my *Mysql57) StartSlaveIOThread(db *sql.DB) error
- func (my *Mysql57) StopSlave(db *sql.DB) error
- func (my *Mysql57) StopSlaveIOThread(db *sql.DB) error
- func (my *Mysql57) WaitUntilAfterGTID(db *sql.DB, targetGTID string) error
- type MysqlRPC
- func (m *MysqlRPC) ChangeToMaster(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
- func (m *MysqlRPC) IsWorking(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
- func (m *MysqlRPC) ResetMaster(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
- func (m *MysqlRPC) ResetSlaveAll(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
- func (m *MysqlRPC) SetGlobalSysVar(req *model.MysqlVarRPCRequest, rsp *model.MysqlVarRPCResponse) error
- func (m *MysqlRPC) StartSlave(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
- func (m *MysqlRPC) Status(req *model.MysqlStatusRPCRequest, rsp *model.MysqlStatusRPCResponse) error
- func (m *MysqlRPC) StopSlave(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
- type Option
- type PingEntry
- type ReplHandler
- type State
- type User
- func (u *User) ChangeUserPasswd(db *sql.DB, user string, passwd string) error
- func (u *User) CheckUserExists(db *sql.DB, user string) (bool, error)
- func (u *User) CreateReplUserWithoutBinlog(db *sql.DB, user string, passwd string) error
- func (u *User) CreateUser(db *sql.DB, user string, passwd string) error
- func (u *User) CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
- func (u *User) DropUser(db *sql.DB, user string, host string) error
- func (u *User) GetUser(db *sql.DB) ([]model.MysqlUser, error)
- func (u *User) GrantAllPrivileges(db *sql.DB, user string) error
- func (u *User) GrantNormalPrivileges(db *sql.DB, user string) error
- func (u *User) GrantReplicationPrivileges(db *sql.DB, user string) error
- type UserHandler
Constants ¶
const ( // MysqlAlive enum. MysqlAlive State = "ALIVE" // MysqlDead enum. MysqlDead State = "DEAD" // MysqlReadonly enum. MysqlReadonly Option = "READONLY" // MysqlReadwrite enum. MysqlReadwrite Option = "READWRITE" )
Variables ¶
This section is empty.
Functions ¶
func ChangeMasterToError ¶
ChangeMasterToError mock.
func DefaultChangeMasterTo ¶
DefaultChangeMasterTo mock.
func DefaultChangeToMaster ¶
DefaultChangeToMaster mock.
func DefaultDisableSemiSyncMaster ¶
DefaultDisableSemiSyncMaster mock.
func DefaultEnableSemiSyncMaster ¶
DefaultEnableSemiSyncMaster mock.
func DefaultGetMasterGTID ¶
DefaultGetMasterGTID mock.
func DefaultGetSlaveGTID ¶
DefaultGetSlaveGTID returns the default slave gtid.
func DefaultPurgeBinlogsTo ¶
DefaultPurgeBinlogsTo mock.
func DefaultSelectSysVar ¶
DefaultSelectSysVar mock.
func DefaultSetGlobalSysVar ¶
DefaultSetGlobalSysVar mock.
func DefaultSetReadOnly ¶
DefaultSetReadOnly mock.
func DefaultSetSemiWaitSlaveCount ¶
DefaultSetSemiWaitSlaveCount mock.
func DefaultStartSlaveIOThread ¶
DefaultStartSlaveIOThread mock.
func DefaultStopSlaveIOThread ¶
DefaultStopSlaveIOThread mock.
func DefaultWaitUntilAfterGTID ¶
DefaultWaitUntilAfterGTID mock.
func ExecuteSuperQueryList ¶
ExecuteSuperQueryList alows the user to execute queries as a super user.
func ExecuteSuperQueryListWithTimeout ¶
ExecuteSuperQueryListWithTimeout alows the user to execute queries as a super user.
func ExecuteWithTimeout ¶
ExecuteWithTimeout executes a query without returning any rows.
func GetMasterGTIDError ¶
GetMasterGTIDError mock.
func GetMasterGTIDPingError ¶
GetMasterGTIDPingError mock.
func GetSlaveGTIDA ¶
GetSlaveGTIDA mock. with GTID{Master_Log_File = "", Read_Master_Log_Pos = 0} all functions return is OK
func GetSlaveGTIDError ¶
GetSlaveGTIDError mock.
func MockGetClient ¶
MockGetClient mock.
func QueryWithTimeout ¶
func QueryWithTimeout(db *sql.DB, maxTime int, query string, args ...interface{}) ([]map[string]string, error)
QueryWithTimeout used to execute the query with maxTime.
func SetReadOnlyError ¶
SetReadOnlyError mock.
func StartSlaveIOThreadError ¶
StartSlaveIOThreadError mock.
func StopSlaveIOThreadError ¶
StopSlaveIOThreadError mock.
Types ¶
type MockGTID ¶
type MockGTID struct { PingFn func(*sql.DB) (*PingEntry, error) SetReadOnlyFn func(*sql.DB, bool) error GetMasterGTIDFn func(*sql.DB) (*model.GTID, error) GetSlaveGTIDFn func(*sql.DB) (*model.GTID, error) StartSlaveIOThreadFn func(*sql.DB) error StopSlaveIOThreadFn func(*sql.DB) error StartSlaveFn func(*sql.DB) error StopSlaveFn func(*sql.DB) error ChangeMasterToFn func(*sql.DB, *model.Repl) error ChangeToMasterFn func(*sql.DB) error WaitUntilAfterGTIDFn func(*sql.DB, string) error SetGlobalSysVarFn func(*sql.DB, string) error ResetMasterFn func(*sql.DB) error ResetSlaveAllFn func(*sql.DB) error PurgeBinlogsToFn func(*sql.DB, string) error EnableSemiSyncMasterFn func(*sql.DB) error DisableSemiSyncMasterFn func(*sql.DB) error SelectSysVarFn func(*sql.DB, string) (string, error) SetSemiWaitSlaveCountFn func(*sql.DB, int) error }
MockGTID tuple.
func NewMockGTIDB ¶
func NewMockGTIDB() *MockGTID
NewMockGTIDB mock. with GTID{Master_Log_File = "mysql-bin.000001", Read_Master_Log_Pos = 123} all functions return is OK
func NewMockGTIDC ¶
func NewMockGTIDC() *MockGTID
NewMockGTIDC mock. with GTID{Master_Log_File = "mysql-bin.000001", Read_Master_Log_Pos = 124} all functions return is OK
func NewMockGTIDError ¶
func NewMockGTIDError() *MockGTID
NewMockGTIDError mock. mock GetSlaveGTID returns error mock GetMasterGTID returns error
func NewMockGTIDPingError ¶
func NewMockGTIDPingError() *MockGTID
NewMockGTIDPingError mock. mock Ping returns error
func NewMockGTIDX1 ¶
func NewMockGTIDX1() *MockGTID
NewMockGTIDX1 mock. with GTID{Master_Log_File = "mysql-bin.000001", Read_Master_Log_Pos = 123} all functions return is OK
func NewMockGTIDX3 ¶
func NewMockGTIDX3() *MockGTID
NewMockGTIDX3 mock. with GTID{Master_Log_File = "mysql-bin.000003", Read_Master_Log_Pos = 123} all functions return is OK
func NewMockGTIDX5 ¶
func NewMockGTIDX5() *MockGTID
NewMockGTIDX5 mock. with GTID{Master_Log_File = "mysql-bin.000005", Read_Master_Log_Pos = 123} all functions return is OK
func (*MockGTID) ChangeMasterTo ¶
ChangeMasterTo mock.
func (*MockGTID) ChangeToMaster ¶
ChangeToMaster mock.
func (*MockGTID) DisableSemiSyncMaster ¶
DisableSemiSyncMaster mock.
func (*MockGTID) EnableSemiSyncMaster ¶
EnableSemiSyncMaster mock.
func (*MockGTID) GetMasterGTID ¶
GetMasterGTID mock.
func (*MockGTID) GetSlaveGTID ¶
GetSlaveGTID mock.
func (*MockGTID) PurgeBinlogsTo ¶
PurgeBinlogsTo mock.
func (*MockGTID) ResetMaster ¶
ResetMaster mock.
func (*MockGTID) ResetSlaveAll ¶
ResetSlaveAll mock.
func (*MockGTID) SelectSysVar ¶
SelectSysVar mock.
func (*MockGTID) SetGlobalSysVar ¶
SetGlobalSysVar mock.
func (*MockGTID) SetReadOnly ¶
SetReadOnly mock.
func (*MockGTID) SetSemiWaitSlaveCount ¶
SetSemiWaitSlaveCount mock
func (*MockGTID) StartSlaveIOThread ¶
StartSlaveIOThread mock.
func (*MockGTID) StopSlaveIOThread ¶
StopSlaveIOThread mock.
type MockUserA ¶
type MockUserA struct {
UserHandler
}
MockUserA tuple.
func (*MockUserA) ChangeUserPasswd ¶
ChangeUserPasswd mock.
func (*MockUserA) CheckUserExists ¶
CheckUserExists mock.
func (*MockUserA) CreateReplUserWithoutBinlog ¶
CreateReplUserWithoutBinlog mock.
func (*MockUserA) CreateUser ¶
CreateUser mock.
func (*MockUserA) CreateUserWithPrivileges ¶
func (u *MockUserA) CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
CreateUserWithPrivileges mock.
func (*MockUserA) GrantAllPrivileges ¶
GrantAllPrivileges mock.
func (*MockUserA) GrantNormalPrivileges ¶
GrantNormalPrivileges mock.
type Mysql ¶
type Mysql struct {
// contains filtered or unexported fields
}
Mysql tuple.
func MockMysqlReplUser ¶ added in v1.0.2
MockMysqlReplUser mock.
func NewMysql ¶
func NewMysql(conf *config.MysqlConfig, log *xlog.Log) *Mysql
NewMysql creates the new Mysql.
func (*Mysql) ChangeMasterTo ¶
ChangeMasterTo used to do the 'change master to' command.
func (*Mysql) ChangeToMaster ¶
ChangeToMaster used to do the 'reset slave all' command.
func (*Mysql) ChangeUserPasswd ¶
ChangeUserPasswd used to change the user's password.
func (*Mysql) CheckUserExists ¶
CheckUserExists used to check the user exists or not.
func (*Mysql) CreateReplUserWithoutBinlog ¶
CreateReplUserWithoutBinlog used to create a repl user without binlog.
func (*Mysql) CreateUser ¶
CreateUser used to create the new user.
func (*Mysql) CreateUserWithPrivileges ¶
func (m *Mysql) CreateUserWithPrivileges(user, passwd, database, table, host, privs string, ssl string) error
CreateUserWithPrivileges used to create a new user with grants.
func (*Mysql) DisableSemiSyncMaster ¶
DisableSemiSyncMaster used to disable the semi-sync from master.
func (*Mysql) EnableSemiSyncMaster ¶
EnableSemiSyncMaster used to enable the semi-sync on master.
func (*Mysql) GTIDGreaterThan ¶
GTIDGreaterThan used to compare the master_log_file and read_master_log_pos between from and this.
func (*Mysql) GetGTID ¶
GetGTID returns the mysql master_binlog and read_master_log_pos. 1. first try GetSlaveGTID 2. if STEP1) fails, try GetMasterGTID
func (*Mysql) GetMasterGTID ¶
GetMasterGTID used to get master binlog info.
func (*Mysql) GetMysqlRPC ¶
GetMysqlRPC returns the MysqlRPC.
func (*Mysql) GetSlaveGTID ¶
GetSlaveGTID used to get Relay_Master_Log_File and read_master_binlog_pos.
func (*Mysql) GrantAllPrivileges ¶
GrantAllPrivileges used to grants all privs for the user.
func (*Mysql) GrantNormalPrivileges ¶
GrantNormalPrivileges used grant normal privs.
func (*Mysql) GrantReplicationPrivileges ¶
GrantReplicationPrivileges used to grant replication privs.
func (*Mysql) IncMysqlDowns ¶
func (s *Mysql) IncMysqlDowns()
IncMysqlDowns used to increase the mysql down counter.
func (*Mysql) Promotable ¶
Promotable used to check whether we can promote to candidate. Promotable: 1. MySQL is MysqlAlive 2. Slave_SQL_Running
NOTES: we do not consider Slave_IO_Running to Promotable, because the MySQL of leader maybe down the slaves Slave_IO_Running is false, because it's in connecting state
func (*Mysql) PurgeBinlogsTo ¶
PurgeBinlogsTo used to purge binlog.
func (*Mysql) RelayMasterLogFile ¶
RelayMasterLogFile returns RelayMasterLogFile.
func (*Mysql) ResetSlaveAll ¶
ResetSlaveAll used to reset slave.
func (*Mysql) SetGlobalSysVar ¶
SetGlobalSysVar used to set global variables.
func (*Mysql) SetMasterGlobalSysVar ¶
SetMasterGlobalSysVar used to set master global variables.
func (*Mysql) SetReadOnly ¶
SetReadOnly used to set the mysql to readonly.
func (*Mysql) SetReadWrite ¶
SetReadWrite used to set the mysql to write.
func (*Mysql) SetReplHandler ¶
func (m *Mysql) SetReplHandler(h ReplHandler)
SetReplHandler used to set the repl handler.
func (*Mysql) SetSemiWaitSlaveCount ¶
SetSemiWaitSlaveCount used to set rpl_semi_sync_master_wait_for_slave_count
func (*Mysql) SetSlaveGlobalSysVar ¶
SetSlaveGlobalSysVar used to set slave global variables.
func (*Mysql) SetUserHandler ¶
func (m *Mysql) SetUserHandler(h UserHandler)
SetUserHandler used to set the user handler.
func (*Mysql) StartSlaveIOThread ¶
StartSlaveIOThread used to start the slave io thread.
func (*Mysql) StopSlaveIOThread ¶
StopSlaveIOThread used to stop the slave io thread.
func (*Mysql) WaitMysqlWorks ¶
WaitMysqlWorks used to wait for the mysqld to work.
func (*Mysql) WaitUntilAfterGTID ¶
WaitUntilAfterGTID used to do 'SELECT WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' command.
type Mysql57 ¶
type Mysql57 struct {
ReplHandler
}
Mysql57 tuple.
func (*Mysql57) ChangeMasterTo ¶
ChangeMasterTo stop for all channels and reset all replication filter to null. In Xenon, we never set replication filter.
func (*Mysql57) ChangeToMaster ¶
ChangeToMaster changes a slave to be master.
func (*Mysql57) DisableSemiSyncMaster ¶
DisableSemiSyncMaster used to disable the semi-sync from master.
func (*Mysql57) EnableSemiSyncMaster ¶
EnableSemiSyncMaster used to enable the semi-sync on master.
func (*Mysql57) GetMasterGTID ¶
GetMasterGTID used to get binlog info from master.
func (*Mysql57) GetSlaveGTID ¶
GetSlaveGTID gets the gtid from the default channel. Here, We just show the default slave channel.
func (*Mysql57) Ping ¶
Ping has 2 affects: one for heath check other for get master_binglog the slave is syncing
func (*Mysql57) PurgeBinlogsTo ¶
PurgeBinlogsTo used to purge binlog.
func (*Mysql57) ResetMaster ¶
ResetMaster used to reset master.
func (*Mysql57) ResetSlaveAll ¶
ResetSlaveAll used to reset slave.
func (*Mysql57) SetGlobalSysVar ¶
SetGlobalSysVar used to set global variables.
func (*Mysql57) SetReadOnly ¶
SetReadOnly used to set mysql to readonly.
func (*Mysql57) SetSemiWaitSlaveCount ¶
SetSemiWaitSlaveCount used set rpl_semi_sync_master_wait_for_slave_count
func (*Mysql57) StartSlave ¶
StartSlave used to start slave.
func (*Mysql57) StartSlaveIOThread ¶
StartSlaveIOThread used to start the io thread.
func (*Mysql57) StopSlaveIOThread ¶
StopSlaveIOThread used to stop the op thread.
func (*Mysql57) WaitUntilAfterGTID ¶
WaitUntilAfterGTID used to do 'SELECT WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' command. https://dev.mysql.com/doc/refman/5.7/en/gtid-functions.html
type MysqlRPC ¶
type MysqlRPC struct {
// contains filtered or unexported fields
}
MysqlRPC tuple.
func (*MysqlRPC) ChangeToMaster ¶
func (m *MysqlRPC) ChangeToMaster(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
ChangeToMaster used to do 'reset slave all' command.
func (*MysqlRPC) IsWorking ¶
func (m *MysqlRPC) IsWorking(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
IsWorking used to check the mysql works or not.
func (*MysqlRPC) ResetMaster ¶
func (m *MysqlRPC) ResetMaster(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
ResetMaster used to reset master.
func (*MysqlRPC) ResetSlaveAll ¶
func (m *MysqlRPC) ResetSlaveAll(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
ResetSlaveAll used to reset slave.
func (*MysqlRPC) SetGlobalSysVar ¶
func (m *MysqlRPC) SetGlobalSysVar(req *model.MysqlVarRPCRequest, rsp *model.MysqlVarRPCResponse) error
SetGlobalSysVar used to set global vars.
func (*MysqlRPC) StartSlave ¶
func (m *MysqlRPC) StartSlave(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
StartSlave used to start the slave.
func (*MysqlRPC) Status ¶
func (m *MysqlRPC) Status(req *model.MysqlStatusRPCRequest, rsp *model.MysqlStatusRPCResponse) error
Status returns the mysql GTID info.
func (*MysqlRPC) StopSlave ¶
func (m *MysqlRPC) StopSlave(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
StopSlave used to stop the slave.
type ReplHandler ¶
type ReplHandler interface { // check health and return log_bin_basename Ping(*sql.DB) (*PingEntry, error) // set mysql readonly variable SetReadOnly(*sql.DB, bool) error // get GTID from traversal binlog folder and find the newest one GetMasterGTID(*sql.DB) (*model.GTID, error) // get GTID from SHOW SLAVE STATUS GetSlaveGTID(*sql.DB) (*model.GTID, error) // start slave io_thread StartSlaveIOThread(*sql.DB) error // stop slave io_thread StopSlaveIOThread(*sql.DB) error // start slave StartSlave(*sql.DB) error // stop slave StopSlave(*sql.DB) error // use the provided master as the new master ChangeMasterTo(*sql.DB, *model.Repl) error // change a slave to master ChangeToMaster(*sql.DB) error // waits until slave replication reaches at least targetGTID WaitUntilAfterGTID(*sql.DB, string) error // set global variables SetGlobalSysVar(db *sql.DB, varsql string) error // reset master ResetMaster(db *sql.DB) error // reset slave all ResetSlaveAll(db *sql.DB) error // purge binglog to PurgeBinlogsTo(*sql.DB, string) error // enable master semi sync: wait slave ack EnableSemiSyncMaster(db *sql.DB) error // disable master semi sync: don't wait slave ack DisableSemiSyncMaster(db *sql.DB) error //set rpl_semi_master_wait_for_slave_count SetSemiWaitSlaveCount(db *sql.DB, count int) error }
ReplHandler interface.
type User ¶
type User struct {
UserHandler
}
User tuple.
func (*User) ChangeUserPasswd ¶
ChangeUserPasswd used to change the user password.
func (*User) CheckUserExists ¶
CheckUserExists used to check the user exists or not.
func (*User) CreateReplUserWithoutBinlog ¶
CreateReplUserWithoutBinlog create replication accounts without writing binlog.
func (*User) CreateUser ¶
CreateUser use to create new user. see http://dev.mysql.com/doc/refman/5.7/en/string-literals.html
func (*User) CreateUserWithPrivileges ¶
func (u *User) CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
CreateUserWithPrivileges for create normal user.
func (*User) GrantAllPrivileges ¶
GrantAllPrivileges used to grant all privis.
func (*User) GrantNormalPrivileges ¶
GrantNormalPrivileges used to grants normal privileges.
type UserHandler ¶
type UserHandler interface { GetUser(*sql.DB) ([]model.MysqlUser, error) CheckUserExists(*sql.DB, string) (bool, error) CreateUser(*sql.DB, string, string) error DropUser(*sql.DB, string, string) error ChangeUserPasswd(*sql.DB, string, string) error CreateReplUserWithoutBinlog(*sql.DB, string, string) error GrantAllPrivileges(*sql.DB, string) error GrantNormalPrivileges(*sql.DB, string) error CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error GrantReplicationPrivileges(*sql.DB, string) error }
UserHandler interface.