Documentation
¶
Index ¶
- Constants
- func ChangeMasterToError(db *sql.DB, gtid *model.Repl) error
- func ChangeToMasterError(db *sql.DB, repl *model.Repl) error
- func CheckGTIDLC(*model.GTID, *model.GTID) bool
- func DefaultChangeMasterTo(db *sql.DB, gtid *model.Repl) error
- func DefaultChangeToMaster(db *sql.DB, repl *model.Repl) error
- func DefaultChangeUserPasswd(db *sql.DB, user string, host string, passwd string) error
- func DefaultCheckGTID(followerGTID *model.GTID, leaderGTID *model.GTID) bool
- func DefaultCheckUserExists(db *sql.DB, user string, host string) (bool, error)
- func DefaultCreateReplUserWithoutBinlog(db *sql.DB, user string, passwd string) error
- func DefaultCreateUser(db *sql.DB, user string, host string, passwd string, ssltype string) error
- func DefaultCreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
- func DefaultDisableSemiSyncMaster(db *sql.DB) error
- func DefaultDropUser(db *sql.DB, user string, host string) error
- func DefaultEnableSemiSyncMaster(db *sql.DB) error
- func DefaultGTIDBigger(db *sql.DB, gtid1 string, gtid2 string) (bool, error)
- func DefaultGetGTIDSubtract(db *sql.DB, subsetGTID string, setGTID string) (string, error)
- func DefaultGetLocalMGRStat(db *sql.DB) (*model.MGRStatus, error)
- func DefaultGetLocalMGRStat0(db *sql.DB) (*model.MGRStatus, error)
- func DefaultGetLocalMGRStat1(db *sql.DB) (*model.MGRStatus, error)
- func DefaultGetLocalMGRStat2(db *sql.DB) (*model.MGRStatus, error)
- func DefaultGetLocalMGRStat3(db *sql.DB) (*model.MGRStatus, error)
- func DefaultGetLocalMGRStat4(db *sql.DB) (*model.MGRStatus, error)
- func DefaultGetLocalMGRStat5(db *sql.DB) (*model.MGRStatus, error)
- func DefaultGetLocalMGRStat6(db *sql.DB) (*model.MGRStatus, error)
- func DefaultGetMGRGTID(db *sql.DB) (*model.GTID, error)
- func DefaultGetMGRMasterUUID(db *sql.DB) (string, error)
- func DefaultGetMGRMasterUUID0(db *sql.DB) (string, error)
- func DefaultGetMGRMasterUUID1(db *sql.DB) (string, error)
- func DefaultGetMGRMasterUUID2(db *sql.DB) (string, error)
- func DefaultGetMGRMasterUUID3(db *sql.DB) (string, error)
- func DefaultGetMGRMasterUUID4(db *sql.DB) (string, error)
- func DefaultGetMGRMasterUUID5(db *sql.DB) (string, error)
- func DefaultGetMGRMasterUUID6(db *sql.DB) (string, error)
- func DefaultGetMGRStats(db *sql.DB) ([]map[string]string, error)
- func DefaultGetMGRStats1(db *sql.DB) ([]map[string]string, error)
- func DefaultGetMGRStats2(db *sql.DB) ([]map[string]string, error)
- func DefaultGetMGRStats3(db *sql.DB) ([]map[string]string, error)
- func DefaultGetMGRStats4(db *sql.DB) ([]map[string]string, error)
- func DefaultGetMGRStats5(db *sql.DB) ([]map[string]string, error)
- func DefaultGetMGRStats6(db *sql.DB) ([]map[string]string, error)
- func DefaultGetMGRStats7(db *sql.DB) ([]map[string]string, error)
- func DefaultGetMasterGTID(db *sql.DB) (*model.GTID, error)
- func DefaultGetReplMode() *model.MysqlReplMode
- func DefaultGetReplMode_MySQL_MGR() *model.MysqlReplMode
- func DefaultGetSlaveGTID(db *sql.DB) (*model.GTID, error)
- func DefaultGetUUID(db *sql.DB) (string, error)
- func DefaultGetUser(db *sql.DB) ([]model.MysqlUser, error)
- func DefaultGrantAllPrivileges(db *sql.DB, user string, host string, passwd string, ssl string) error
- func DefaultGrantNormalPrivileges(db *sql.DB, user string, host string) error
- func DefaultGrantReplicationPrivileges(db *sql.DB, user string) error
- func DefaultIsMGRRunningOK(db *sql.DB) (bool, error)
- func DefaultMGRChangeMasterTo(db *sql.DB, gtid *model.Repl) error
- func DefaultPurgeBinlogsTo(db *sql.DB, binlog string) error
- func DefaultResetMaster(db *sql.DB) error
- func DefaultResetSlave(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 DefaultSetQueryTimeout(timeout int)
- func DefaultSetReadOnly(db *sql.DB, readonly bool) error
- func DefaultSetSemiWaitSlaveCount(db *sql.DB, count int) error
- func DefaultStartMGR(db *sql.DB) error
- func DefaultStartSlave(db *sql.DB) error
- func DefaultStartSlaveIOThread(db *sql.DB) error
- func DefaultStopMGR(db *sql.DB) error
- func DefaultStopSlave(db *sql.DB) error
- func DefaultStopSlaveIOThread(db *sql.DB) error
- func DefaultWaitApplyRelayLog(db *sql.DB, retry int, interval int) 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 GTIDBiggerXn(db *sql.DB, gtid1 string, gtid2 string) (bool, error)
- func GetGTIDSubtractE(db *sql.DB, subsetGTID string, setGTID string) (string, error)
- func GetGTIDSubtractError(db *sql.DB, subsetGTID string, setGTID string) (string, error)
- func GetGTIDSubtractInvalid(db *sql.DB, slaveGTID string, masterGTID string) (string, error)
- func GetMGRGTIDError(db *sql.DB) (*model.GTID, error)
- func GetMGRGTIDPingError(db *sql.DB) (*model.GTID, error)
- func GetMGRGTIDX1(db *sql.DB) (*model.GTID, error)
- func GetMGRGTIDX1CaughtUp(db *sql.DB) (*model.GTID, error)
- func GetMGRGTIDX3(db *sql.DB) (*model.GTID, error)
- func GetMGRGTIDX3CaughtUp(db *sql.DB) (*model.GTID, error)
- func GetMGRGTIDX5(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDA(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDAA(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDB(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDBB(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDC(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDCC(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDD(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDE1(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDE2(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDE3(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDError(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDF(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDInvalid(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDLC(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDNull(db *sql.DB) (*model.GTID, error)
- func GetMasterGTIDPingError(db *sql.DB) (*model.GTID, error)
- func GetReplModeMGRFn() *model.MysqlReplMode
- func GetReplModeSemiSyncFn() *model.MysqlReplMode
- func GetSlaveGTIDA(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDAA(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDB(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDBB(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDC(db *sql.DB) (*model.GTID, error)
- func GetSlaveGTIDCC(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 GetUUIDA(db *sql.DB) (string, error)
- func GetUUIDLC(db *sql.DB) (string, error)
- func MGRChangeMasterToError(db *sql.DB, gtid *model.Repl) error
- func MockGetClient(t *testing.T, svrConn string) (*nrpc.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 SetReplModeMGRFn(mode model.MysqlReplMode)
- func SetReplModeSemiSyncFn(mode model.MysqlReplMode)
- func SetSemiSyncMasterTimeout(db *sql.DB, timeout uint64) 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 WaitApplyRelayLogError(db *sql.DB, retry int, interval int) error
- func WaitUntilAfterGTIDError(db *sql.DB, targetGTID string) error
- type ArraySlice
- type Driver
- func (d *Driver) ApplyPrimary(ctx context.Context) error
- func (d *Driver) ApplyPrimaryMGRPhase2(ctx context.Context) error
- func (d *Driver) ApplyReplica(ctx context.Context, primary dbdriver.PrimaryRef) error
- func (d *Driver) ChangeToMasterRepl(ctx context.Context) error
- func (d *Driver) Demote(ctx context.Context) error
- func (d *Driver) EnableReadWrite(ctx context.Context) error
- func (d *Driver) IsMGRMode() bool
- func (d *Driver) MGRClusterWritableReady(ctx context.Context) (bool, error)
- func (d *Driver) MGRPrimaryPhase1Done(ctx context.Context) (bool, error)
- func (d *Driver) MGRReplicaJoined(ctx context.Context) (bool, error)
- func (d *Driver) Mysql() *Mysql
- func (d *Driver) Promotable(ctx context.Context) (bool, string)
- func (d *Driver) ReplicaConnectedToPrimary(ctx context.Context, _ dbdriver.PrimaryRef) (bool, error)
- func (d *Driver) ReplicationLagBytes(ctx context.Context) (int64, error)
- func (d *Driver) SetupBootstrap(ctx context.Context) error
- func (d *Driver) Start()
- func (d *Driver) Status(ctx context.Context) (dbdriver.Health, error)
- func (d *Driver) Stop()
- func (d *Driver) Type() dbdriver.Engine
- type MockGTID
- func NewMockGTIDA(replMode model.MysqlReplMode) *MockGTID
- func NewMockGTIDAA() *MockGTID
- func NewMockGTIDB() *MockGTID
- func NewMockGTIDBB() *MockGTID
- func NewMockGTIDByNodes(cnt int, whoisleader int, whoislocal int) *MockGTID
- func NewMockGTIDByNodesXn(cnt int, whoisleader int, whoislocal int) *MockGTID
- func NewMockGTIDC() *MockGTID
- func NewMockGTIDCC() *MockGTID
- func NewMockGTIDD() *MockGTID
- func NewMockGTIDE1() *MockGTID
- func NewMockGTIDE2() *MockGTID
- func NewMockGTIDE3() *MockGTID
- func NewMockGTIDError() *MockGTID
- func NewMockGTIDF() *MockGTID
- func NewMockGTIDGetGTIDSubtractError() *MockGTID
- func NewMockGTIDInvalid() *MockGTID
- func NewMockGTIDLC() *MockGTID
- func NewMockGTIDNull() *MockGTID
- func NewMockGTIDPingError() *MockGTID
- func NewMockGTIDX1() *MockGTID
- func NewMockGTIDX1ForMGR() *MockGTID
- func NewMockGTIDX1GetMGRGTIDError() *MockGTID
- func NewMockGTIDX1MGRCaughtUp() *MockGTID
- func NewMockGTIDX3() *MockGTID
- func NewMockGTIDX3MGRCaughtUp() *MockGTID
- func NewMockGTIDX5() *MockGTID
- func NewMockGTIDX5ChangeToMasterError() *MockGTID
- func NewMockGTIDX5WaitApplyRelayLogError() *MockGTID
- func NewMockGTIDX5WaitUntilAfterGTIDError() *MockGTID
- func (mogtid *MockGTID) ChangeMasterTo(db *sql.DB, gtid *model.Repl) error
- func (mogtid *MockGTID) ChangeToMaster(db *sql.DB, repl *model.Repl) error
- func (mogtid *MockGTID) ChangeUserPasswd(db *sql.DB, user string, host string, passwd string) error
- func (mogtid *MockGTID) CheckUserExists(db *sql.DB, user string, host string) (bool, error)
- func (mogtid *MockGTID) CreateReplUserWithoutBinlog(db *sql.DB, user string, passwd string) error
- func (mogtid *MockGTID) CreateUser(db *sql.DB, user string, host string, passwd string, ssltype string) error
- func (mogtid *MockGTID) CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
- func (mogtid *MockGTID) DisableSemiSyncMaster(db *sql.DB) error
- func (mogtid *MockGTID) DropUser(db *sql.DB, user string, host string) error
- func (mogtid *MockGTID) EnableSemiSyncMaster(db *sql.DB) error
- func (mogtid *MockGTID) GTIDBigger(db *sql.DB, gtid1 string, gtid2 string) (bool, error)
- func (mogtid *MockGTID) GetGTIDSubtract(db *sql.DB, subsetGTID string, setGTID string) (string, error)
- func (mogtid *MockGTID) GetLocalMGRStat(db *sql.DB) (*model.MGRStatus, error)
- func (mogtid *MockGTID) GetMGRGTID(db *sql.DB) (*model.GTID, error)
- func (mogtid *MockGTID) GetMGRMasterUUID(db *sql.DB) (string, error)
- func (mogtid *MockGTID) GetMGRStats(db *sql.DB) ([]map[string]string, error)
- func (mogtid *MockGTID) GetMasterGTID(db *sql.DB) (*model.GTID, error)
- func (mogtid *MockGTID) GetReplMode() *model.MysqlReplMode
- func (mogtid *MockGTID) GetSlaveGTID(db *sql.DB) (*model.GTID, error)
- func (mogtid *MockGTID) GetUUID(db *sql.DB) (string, error)
- func (mogtid *MockGTID) GetUser(db *sql.DB) ([]model.MysqlUser, error)
- func (mogtid *MockGTID) GrantAllPrivileges(db *sql.DB, user string, host, passwd, ssl string) error
- func (mogtid *MockGTID) GrantNormalPrivileges(db *sql.DB, user string, host string) error
- func (mogtid *MockGTID) GrantReplicationPrivileges(db *sql.DB, user string) error
- func (mogtid *MockGTID) IsMGRRunningOK(db *sql.DB) (bool, error)
- func (mogtid *MockGTID) MGRChangeMasterTo(db *sql.DB, gtid *model.Repl) 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) ResetSlave(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) SetQueryTimeout(timeout int)
- func (mogtid *MockGTID) SetReadOnly(db *sql.DB, readonly bool) error
- func (mogtid *MockGTID) SetReplMode(mode model.MysqlReplMode)
- func (mogtid *MockGTID) SetSemiSyncMasterTimeout(db *sql.DB, timeout uint64) error
- func (mogtid *MockGTID) SetSemiWaitSlaveCount(db *sql.DB, count int) error
- func (mogtid *MockGTID) StartMGR(db *sql.DB) error
- func (mogtid *MockGTID) StartSlave(db *sql.DB) error
- func (mogtid *MockGTID) StartSlaveIOThread(db *sql.DB) error
- func (mogtid *MockGTID) StopMGR(db *sql.DB) error
- func (mogtid *MockGTID) StopSlave(db *sql.DB) error
- func (mogtid *MockGTID) StopSlaveIOThread(db *sql.DB) error
- func (mogtid *MockGTID) WaitApplyRelayLog(db *sql.DB, retry int, interval int) error
- func (mogtid *MockGTID) WaitUntilAfterGTID(db *sql.DB, targetGTID string) error
- type Mysql
- func (m *Mysql) ChangeMasterTo(repl *model.Repl) error
- func (m *Mysql) ChangeToMaster(repl *model.Repl) error
- func (m *Mysql) ChangeUserPasswd(user string, host string, passwd string) error
- func (m *Mysql) CheckGTID(followerGTID *model.GTID, candidateGTID *model.GTID) bool
- func (m *Mysql) CheckUserExists(user string, host string) (bool, error)
- func (m *Mysql) CreateReplUserWithoutBinlog(user string, passwd string) error
- func (m *Mysql) CreateUser(user string, host string, passwd string, ssltype 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) GTIDSetUnion(gtidSet1 string, gtidSet2 string) string
- func (m *Mysql) GetGTID() (model.GTID, error)
- func (m *Mysql) GetGTIDSubtract(subsetGTID string, setGTID string) (string, error)
- func (m *Mysql) GetLocalGTID(gtid string) (string, error)
- func (m *Mysql) GetLocalMGRStat() (*model.MGRStatus, error)
- func (m *Mysql) GetMGRGTID() (*model.GTID, error)
- func (m *Mysql) GetMGRMasterUUID() (string, error)
- func (m *Mysql) GetMGRStats() ([]map[string]string, error)
- func (m *Mysql) GetMasterGTID() (*model.GTID, error)
- func (m *Mysql) GetMysqlHandler() *MysqlHandler
- func (m *Mysql) GetMysqlRPC() *MysqlRPC
- func (m *Mysql) GetOption() Option
- func (m *Mysql) GetRepl() model.Repl
- func (m *Mysql) GetReplGtidPurged() string
- func (m *Mysql) GetReplMode() model.MysqlReplMode
- func (m *Mysql) GetSlaveGTID() (*model.GTID, error)
- func (m *Mysql) GetState() model.MysqlState
- func (m *Mysql) GetUUID() (string, error)
- func (m *Mysql) GetUser() ([]model.MysqlUser, error)
- func (m *Mysql) GrantAllPrivileges(user string, host string, passwd string, ssl string) error
- func (m *Mysql) GrantNormalPrivileges(user string, host string) error
- func (m *Mysql) GrantReplicationPrivileges(user string) error
- func (s *Mysql) IncMysqlDowns()
- func (m *Mysql) IsMGRRunningOK() (bool, error)
- func (m *Mysql) MGRChangeMasterTo(repl *model.Repl) error
- func (m *Mysql) MGRGTIDGreaterThan(gtid *model.GTID) (bool, model.GTID, error)
- 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) ResetSlave() error
- func (m *Mysql) ResetSlaveAll() error
- func (m *Mysql) SemiSyncGTIDGreaterThan(gtid *model.GTID) (bool, model.GTID, error)
- func (m *Mysql) SetGlobalSysVar(varsql string) error
- func (m *Mysql) SetMasterGlobalSysVar() error
- func (m *Mysql) SetMysqlHandler(h MysqlHandler)
- func (m *Mysql) SetReadOnly() (err error)
- func (m *Mysql) SetReadWrite() (err error)
- func (m *Mysql) SetReplMode(mode model.MysqlReplMode)
- func (m *Mysql) SetSemiSyncMasterTimeout(timeout uint64) error
- func (m *Mysql) SetSemiWaitSlaveCount(count int) error
- func (m *Mysql) SetSlaveGlobalSysVar() error
- func (m *Mysql) SetState(state model.MysqlState)
- func (m *Mysql) ShouldDeferFailover() bool
- func (m *Mysql) StartMGR() error
- func (m *Mysql) StartSlave() error
- func (m *Mysql) StartSlaveIOThread() error
- func (m *Mysql) StopMGR() error
- func (m *Mysql) StopSlave() error
- func (m *Mysql) StopSlaveIOThread() error
- func (m *Mysql) WaitApplyRelayLog(retry int, interval int) error
- func (m *Mysql) WaitMysqlWorks(timeout int) error
- func (m *Mysql) WaitUntilAfterGTID(targetGTID string) error
- func (m *Mysql) Warmup() error
- type Mysql56
- func (my *Mysql56) ChangeUserPasswd(db *sql.DB, user string, host string, passwd string) error
- func (my *Mysql56) CreateUser(db *sql.DB, user string, host string, passwd string, ssltype string) error
- func (my *Mysql56) CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
- func (my *Mysql56) GrantAllPrivileges(db *sql.DB, user string, host string, passwd string, ssl string) error
- func (my *Mysql56) SetSemiWaitSlaveCount(db *sql.DB, count int) error
- type Mysql57
- type Mysql80
- type MysqlBase
- func (my *MysqlBase) ChangeMasterTo(db *sql.DB, master *model.Repl) error
- func (my *MysqlBase) ChangeToMaster(db *sql.DB, master *model.Repl) error
- func (my *MysqlBase) ChangeUserPasswd(db *sql.DB, user string, host string, passwd string) error
- func (my *MysqlBase) CheckUserExists(db *sql.DB, user string, host string) (bool, error)
- func (my *MysqlBase) CreateReplUserWithoutBinlog(db *sql.DB, user string, passwd string) error
- func (my *MysqlBase) CreateUser(db *sql.DB, user string, host string, passwd string, ssltype string) error
- func (my *MysqlBase) CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
- func (my *MysqlBase) DisableSemiSyncMaster(db *sql.DB) error
- func (my *MysqlBase) DropUser(db *sql.DB, user string, host string) error
- func (my *MysqlBase) EnableSemiSyncMaster(db *sql.DB) error
- func (my *MysqlBase) GTIDBigger(db *sql.DB, gtid1 string, gtid2 string) (bool, error)
- func (my *MysqlBase) GTIDDiff(db *sql.DB, gtid1 string, gtid2 string) (string, error)
- func (my *MysqlBase) GTIDSubtract(db *sql.DB, gtid1 string, gtid2 string) ([]map[string]string, error)
- func (my *MysqlBase) GetGTIDSubtract(db *sql.DB, subsetGTID string, setGTID string) (string, error)
- func (my *MysqlBase) GetMGRGTID(db *sql.DB) (*model.GTID, error)
- func (my *MysqlBase) GetMGRMasterUUID(db *sql.DB) (string, error)
- func (my *MysqlBase) GetMGRStats(db *sql.DB) ([]map[string]string, error)
- func (my *MysqlBase) GetMasterGTID(db *sql.DB) (*model.GTID, error)
- func (my *MysqlBase) GetReplMode() *model.MysqlReplMode
- func (my *MysqlBase) GetServerID(db *sql.DB) (string, error)
- func (my *MysqlBase) GetSlaveGTID(db *sql.DB) (*model.GTID, error)
- func (my *MysqlBase) GetUUID(db *sql.DB) (string, error)
- func (my *MysqlBase) GetUser(db *sql.DB) ([]model.MysqlUser, error)
- func (my *MysqlBase) GrantAllPrivileges(db *sql.DB, user string, host string, passwd string, ssl string) error
- func (my *MysqlBase) GrantNormalPrivileges(db *sql.DB, user string, host string) error
- func (my *MysqlBase) GrantReplicationPrivileges(db *sql.DB, user string) error
- func (my *MysqlBase) IsMGRRunningOK(db *sql.DB) (bool, error)
- func (my *MysqlBase) MGRChangeMasterTo(db *sql.DB, master *model.Repl) error
- func (my *MysqlBase) MGRChangeMasterToCommands(master *model.Repl) []string
- func (my *MysqlBase) Ping(db *sql.DB) (*PingEntry, error)
- func (my *MysqlBase) PurgeBinlogsTo(db *sql.DB, binlog string) error
- func (my *MysqlBase) ResetMaster(db *sql.DB) error
- func (my *MysqlBase) ResetSlave(db *sql.DB) error
- func (my *MysqlBase) ResetSlaveAll(db *sql.DB) error
- func (my *MysqlBase) SetGlobalSysVar(db *sql.DB, varsql string) error
- func (my *MysqlBase) SetQueryTimeout(timeout int)
- func (my *MysqlBase) SetReadOnly(db *sql.DB, readonly bool) error
- func (my *MysqlBase) SetReplMode(replMode model.MysqlReplMode)
- func (my *MysqlBase) SetSemiSyncMasterTimeout(db *sql.DB, timeout uint64) error
- func (my *MysqlBase) SetSemiWaitSlaveCount(db *sql.DB, count int) error
- func (my *MysqlBase) StartMGR(db *sql.DB) error
- func (my *MysqlBase) StartSlave(db *sql.DB) error
- func (my *MysqlBase) StartSlaveIOThread(db *sql.DB) error
- func (my *MysqlBase) StopMGR(db *sql.DB) error
- func (my *MysqlBase) StopSlave(db *sql.DB) error
- func (my *MysqlBase) StopSlaveIOThread(db *sql.DB) error
- func (my *MysqlBase) WaitApplyRelayLog(db *sql.DB, retry int, interval int) error
- func (my *MysqlBase) WaitUntilAfterGTID(db *sql.DB, targetGTID string) error
- type MysqlHandler
- type MysqlRPC
- func (m *MysqlRPC) ChangeToMaster(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
- func (m *MysqlRPC) GTIDSubtract(req *model.MysqlGTIDSubtractRPCRequest, ...) 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) ResetSlave(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) SetState(req *model.MysqlSetStateRPCRequest, rsp *model.MysqlSetStateRPCResponse) 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
Constants ¶
const ( // ssl type: YES | NO SSLTypYes = "YES" SSLTypNo = "NO" )
Variables ¶
This section is empty.
Functions ¶
func ChangeMasterToError ¶
ChangeMasterToError mock.
func ChangeToMasterError ¶
ChangeToMasterError mock.
func DefaultChangeMasterTo ¶
DefaultChangeMasterTo mock.
func DefaultChangeToMaster ¶
DefaultChangeToMaster mock.
func DefaultChangeUserPasswd ¶
ChangeUserPasswd mock.
func DefaultCheckGTID ¶
func DefaultCheckUserExists ¶
CheckUserExists mock.
func DefaultCreateReplUserWithoutBinlog ¶
CreateReplUserWithoutBinlog mock.
func DefaultCreateUser ¶
CreateUser mock.
func DefaultCreateUserWithPrivileges ¶
func DefaultCreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
CreateUserWithPrivileges mock.
func DefaultDisableSemiSyncMaster ¶
DefaultDisableSemiSyncMaster mock.
func DefaultDropUser ¶
DropUser mock.
func DefaultEnableSemiSyncMaster ¶
DefaultEnableSemiSyncMaster mock.
func DefaultGTIDBigger ¶
DefaultGTIDBigger mock.
func DefaultGetGTIDSubtract ¶
DefaultGetGTIDSubtract mock.
func DefaultGetLocalMGRStat ¶
DefaultGetLocalMGRStat mock.
func DefaultGetLocalMGRStat0 ¶
DefaultGetLocalMGRStat0 mock.
func DefaultGetLocalMGRStat1 ¶
DefaultGetLocalMGRStat1 mock.
func DefaultGetLocalMGRStat2 ¶
DefaultGetLocalMGRStat2 mock.
func DefaultGetLocalMGRStat3 ¶
DefaultGetLocalMGRStat3 mock.
func DefaultGetLocalMGRStat4 ¶
DefaultGetLocalMGRStat4 mock.
func DefaultGetLocalMGRStat5 ¶
DefaultGetLocalMGRStat5 mock.
func DefaultGetLocalMGRStat6 ¶
DefaultGetLocalMGRStat6 mock.
func DefaultGetMGRGTID ¶
DefaultGetMGRGTID mock.
func DefaultGetMGRMasterUUID ¶
DefaultGetMGRMasterUUID mock.
func DefaultGetMGRMasterUUID0 ¶
DefaultGetMGRMasterUUID0 mock.
func DefaultGetMGRMasterUUID1 ¶
DefaultGetMGRMasterUUID1 mock.
func DefaultGetMGRMasterUUID2 ¶
DefaultGetMGRMasterUUID2 mock.
func DefaultGetMGRMasterUUID3 ¶
DefaultGetMGRMasterUUID3 mock.
func DefaultGetMGRMasterUUID4 ¶
DefaultGetMGRMasterUUID4 mock.
func DefaultGetMGRMasterUUID5 ¶
DefaultGetMGRMasterUUID5 mock.
func DefaultGetMGRMasterUUID6 ¶
DefaultGetMGRMasterUUID6 mock.
func DefaultGetMGRStats ¶
DefaultGetMGRStats mock.
func DefaultGetMGRStats1 ¶
DefaultGetMGRStats1 mock.
func DefaultGetMGRStats2 ¶
DefaultGetMGRStats2 mock.
func DefaultGetMGRStats3 ¶
DefaultGetMGRStats3 mock.
func DefaultGetMGRStats4 ¶
DefaultGetMGRStats4 mock.
func DefaultGetMGRStats5 ¶
DefaultGetMGRStats5 mock.
func DefaultGetMGRStats6 ¶
DefaultGetMGRStats6 mock.
func DefaultGetMGRStats7 ¶
DefaultGetMGRStats7 mock.
func DefaultGetMasterGTID ¶
DefaultGetMasterGTID mock.
func DefaultGetReplMode_MySQL_MGR ¶
func DefaultGetReplMode_MySQL_MGR() *model.MysqlReplMode
DefaultGetReplMode_MySQL_MGR mock.
func DefaultGetSlaveGTID ¶
DefaultGetSlaveGTID returns the default slave gtid.
func DefaultGrantAllPrivileges ¶
func DefaultGrantAllPrivileges(db *sql.DB, user string, host string, passwd string, ssl string) error
GrantAllPrivileges mock.
func DefaultGrantNormalPrivileges ¶
GrantNormalPrivileges mock.
func DefaultGrantReplicationPrivileges ¶
GrantReplicationPrivileges mock.
func DefaultIsMGRRunningOK ¶
DefaultIsMGRRunningOK mock.
func DefaultMGRChangeMasterTo ¶
DefaultMGRChangeMasterTo mock.
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 DefaultWaitApplyRelayLog ¶
DefaultWaitApplyRelayLog mock.
func DefaultWaitUntilAfterGTID ¶
DefaultWaitUntilAfterGTID mock.
func ExecuteSuperQueryList ¶
ExecuteSuperQueryList runs queryList on one session so session variables apply to all statements.
func ExecuteSuperQueryListWithTimeout ¶
ExecuteSuperQueryListWithTimeout runs queryList on one session with optional per-statement timeout.
func ExecuteWithTimeout ¶
ExecuteWithTimeout executes a query without returning any rows.
func GTIDBiggerXn ¶
GTIDBiggerXn mock.
func GetGTIDSubtractE ¶
GetGTIDSubtractE mock
func GetGTIDSubtractError ¶
func GetGTIDSubtractInvalid ¶
GetGTIDSubtractInvalid mock.
func GetMGRGTIDPingError ¶
GetMGRGTIDPingError mock.
func GetMGRGTIDX1CaughtUp ¶
GetMGRGTIDX1CaughtUp is like GetMGRGTIDX1 but relay is fully applied (promotable).
func GetMGRGTIDX3CaughtUp ¶
GetMGRGTIDX3CaughtUp is like GetMGRGTIDX3 but relay is fully applied (promotable).
func GetMasterGTIDError ¶
GetMasterGTIDError mock.
func GetMasterGTIDNull ¶
GetMasterGTIDNull mock.
func GetMasterGTIDPingError ¶
GetMasterGTIDPingError mock.
func GetReplModeMGRFn ¶
func GetReplModeMGRFn() *model.MysqlReplMode
func GetReplModeSemiSyncFn ¶
func GetReplModeSemiSyncFn() *model.MysqlReplMode
func GetSlaveGTIDA ¶
GetSlaveGTIDA mock. with GTID{Master_Log_File = "", Read_Master_Log_Pos = 0} all functions return is OK
func GetSlaveGTIDError ¶
GetSlaveGTIDError mock.
func MGRChangeMasterToError ¶
MGRChangeMasterToError 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 SetReplModeMGRFn ¶
func SetReplModeMGRFn(mode model.MysqlReplMode)
func SetReplModeSemiSyncFn ¶
func SetReplModeSemiSyncFn(mode model.MysqlReplMode)
func SetSemiSyncMasterTimeout ¶
SetSemiSyncMasterTimeout mock
func StartSlaveIOThreadError ¶
StartSlaveIOThreadError mock.
func StopSlaveIOThreadError ¶
StopSlaveIOThreadError mock.
func WaitApplyRelayLogError ¶
WaitApplyRelayLogError mock.
Types ¶
type ArraySlice ¶
type ArraySlice [][2]int
ArraySlice definition
func (ArraySlice) Len ¶
func (s ArraySlice) Len() int
func (ArraySlice) Less ¶
func (s ArraySlice) Less(i, j int) bool
func (ArraySlice) Swap ¶
func (s ArraySlice) Swap(i, j int)
type Driver ¶ added in v0.2.0
type Driver struct {
// contains filtered or unexported fields
}
Driver implements database.Driver for MySQL (semi-sync / MGR).
func (*Driver) ApplyPrimary ¶ added in v0.2.0
func (*Driver) ApplyPrimaryMGRPhase2 ¶ added in v0.2.0
func (*Driver) ApplyReplica ¶ added in v0.2.0
func (*Driver) ChangeToMasterRepl ¶ added in v0.2.0
func (*Driver) EnableReadWrite ¶ added in v0.2.0
EnableReadWrite opens writes after semi-sync/MGR promotion steps.
func (*Driver) MGRClusterWritableReady ¶ added in v0.2.0
func (*Driver) MGRPrimaryPhase1Done ¶ added in v0.2.0
func (*Driver) MGRReplicaJoined ¶ added in v0.2.0
func (*Driver) Mysql ¶ added in v0.2.0
Mysql returns the underlying *Mysql for legacy callers (raft, RPC). Deprecated: use Driver.
func (*Driver) Promotable ¶ added in v0.2.0
func (*Driver) ReplicaConnectedToPrimary ¶ added in v0.3.0
func (d *Driver) ReplicaConnectedToPrimary(ctx context.Context, _ dbdriver.PrimaryRef) (bool, error)
ReplicaConnectedToPrimary reports semi-sync replica IO/SQL thread health.
func (*Driver) ReplicationLagBytes ¶ added in v0.2.0
func (*Driver) SetupBootstrap ¶ added in v0.2.0
SetupBootstrap performs first-start MySQL setup (repl user, readonly, semi-sync slave).
type MockGTID ¶
type MockGTID struct {
SetReplModeFn func(mode model.MysqlReplMode)
GetReplModeFn func() *model.MysqlReplMode
SetQueryTimeoutFn func(int)
PingFn func(*sql.DB) (*PingEntry, error)
SetReadOnlyFn func(*sql.DB, bool) error
GTIDBiggerFn func(*sql.DB, string, string) (bool, error)
GetMGRGTIDFn func(*sql.DB) (*model.GTID, error)
IsMGRRunningOKFn func(*sql.DB) (bool, error)
StartMGRFn func(*sql.DB) error
StopMGRFn func(*sql.DB) error
MGRChangeMasterToFn func(*sql.DB, *model.Repl) error
GetMGRStatsFn func(db *sql.DB) ([]map[string]string, error)
GetLocalMGRStatFn func(db *sql.DB) (*model.MGRStatus, error)
GetMGRMasterUUIDFn func(db *sql.DB) (string, error)
WaitApplyRelayLogFn func(*sql.DB, int, int) error
ResetSlaveFn func(*sql.DB) 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, *model.Repl) error
WaitUntilAfterGTIDFn func(*sql.DB, string) error
GetGTIDSubtractFn func(*sql.DB, string, string) (string, error)
GetUUIDFn func(*sql.DB) (string, error)
CheckGTIDFn func(*model.GTID, *model.GTID) bool
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
SetSemiSyncMasterTimeoutFn func(*sql.DB, uint64) error
// Users
GetUserFn func(*sql.DB) ([]model.MysqlUser, error)
CheckUserExistsFn func(*sql.DB, string, string) (bool, error)
CreateUserFn func(*sql.DB, string, string, string, string) error
DropUserFn func(*sql.DB, string, string) error
ChangeUserPasswdFn func(*sql.DB, string, string, string) error
CreateReplUserWithoutBinlogFn func(*sql.DB, string, string) error
GrantAllPrivilegesFn func(*sql.DB, string, string, string, string) error
GrantNormalPrivilegesFn func(*sql.DB, string, string) error
CreateUserWithPrivilegesFn func(*sql.DB, string, string, string, string, string, string, string) error
GrantReplicationPrivilegesFn func(*sql.DB, string) error
}
MockGTID tuple.
func NewMockGTIDAA ¶
func NewMockGTIDAA() *MockGTID
NewMockGTIDAA mock. with GTID{Master_Log_File = "mysql-bin.000001", Read_Master_Log_Pos = 123} all functions return is OK
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 NewMockGTIDBB ¶
func NewMockGTIDBB() *MockGTID
NewMockGTIDBB mock. with GTID{Master_Log_File = "mysql-bin.000001", Read_Master_Log_Pos = 123} all functions return is OK
func NewMockGTIDByNodes ¶
NewMockGTIDByNodes mock.
func NewMockGTIDByNodesXn ¶
NewMockGTIDByNodesXn mock.
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 NewMockGTIDCC ¶
func NewMockGTIDCC() *MockGTID
NewMockGTIDCC 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 NewMockGTIDGetGTIDSubtractError ¶
func NewMockGTIDGetGTIDSubtractError() *MockGTID
NewMockGTIDGetSubtractError mock.
func NewMockGTIDInvalid ¶
func NewMockGTIDInvalid() *MockGTID
NewMockGTIDInvalid mock. mock GetSlaveGTIDInvalid returns Invalid mock GetMasterGTIDInvalid returns Invalid
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,
gtid.Executed_GTID_Set = "6127a668-gtid-x555-a28d-5254335479b2:1"}
all functions return is OK
func NewMockGTIDX1ForMGR ¶
func NewMockGTIDX1ForMGR() *MockGTID
NewMockGTIDX1ForMGR mock. with GTID{Master_Log_File = "mysql-bin.000001", Read_Master_Log_Pos = 123,
gtid.Executed_GTID_Set = "6127a668-gtid-x555-a28d-5254335479b2:1"}
all functions return is OK
func NewMockGTIDX1GetMGRGTIDError ¶
func NewMockGTIDX1GetMGRGTIDError() *MockGTID
NewMockGTIDX1GetMGRGTIDError mock.
func NewMockGTIDX1MGRCaughtUp ¶
func NewMockGTIDX1MGRCaughtUp() *MockGTID
NewMockGTIDX1MGRCaughtUp mock for MGR manual TryToLeader on a caught-up secondary.
func NewMockGTIDX3 ¶
func NewMockGTIDX3() *MockGTID
NewMockGTIDX3 mock. with GTID{Master_Log_File = "mysql-bin.000003", Read_Master_Log_Pos = 123 ,
gtid.Executed_GTID_Set = "6127a668-gtid-x555-a28d-5254335479b2:1"}
all functions return is OK
func NewMockGTIDX3MGRCaughtUp ¶
func NewMockGTIDX3MGRCaughtUp() *MockGTID
NewMockGTIDX3MGRCaughtUp mock for MGR manual TryToLeader on a caught-up secondary.
func NewMockGTIDX5 ¶
func NewMockGTIDX5() *MockGTID
NewMockGTIDX5 mock. with GTID{Master_Log_File = "mysql-bin.000005", Read_Master_Log_Pos = 123,
gtid.Executed_GTID_Set = "6127a668-gtid-x555-a28d-5254335479b2:1"}
all functions return is OK
func NewMockGTIDX5ChangeToMasterError ¶
func NewMockGTIDX5ChangeToMasterError() *MockGTID
NewMockGTIDX5ChangeToMasterError mock. with GTID{Master_Log_File = "mysql-bin.000005", Read_Master_Log_Pos = 123} all functions return is OK except ChangeToMaster error.
func NewMockGTIDX5WaitApplyRelayLogError ¶
func NewMockGTIDX5WaitApplyRelayLogError() *MockGTID
NewMockGTIDX5WaitApplyRelayLogError mock. with GTID{Master_Log_File = "mysql-bin.000005", Read_Master_Log_Pos = 123} all functions return is OK except WaitApplyRelayLog
func NewMockGTIDX5WaitUntilAfterGTIDError ¶
func NewMockGTIDX5WaitUntilAfterGTIDError() *MockGTID
NewMockGTIDX5WaitUntilAfterGTIDError mock. with GTID{Master_Log_File = "mysql-bin.000005", Read_Master_Log_Pos = 123} all functions return is OK except WaitUntilAfterGTID
func (*MockGTID) ChangeMasterTo ¶
ChangeMasterTo mock.
func (*MockGTID) ChangeToMaster ¶
ChangeToMaster mock.
func (*MockGTID) ChangeUserPasswd ¶
func (*MockGTID) CheckUserExists ¶
func (*MockGTID) CreateReplUserWithoutBinlog ¶
func (*MockGTID) CreateUser ¶
func (*MockGTID) CreateUserWithPrivileges ¶
func (*MockGTID) DisableSemiSyncMaster ¶
DisableSemiSyncMaster mock.
func (*MockGTID) EnableSemiSyncMaster ¶
EnableSemiSyncMaster mock.
func (*MockGTID) GTIDBigger ¶
GTIDBigger mock.
func (*MockGTID) GetGTIDSubtract ¶
func (mogtid *MockGTID) GetGTIDSubtract(db *sql.DB, subsetGTID string, setGTID string) (string, error)
GetGTIDSubtract mock.
func (*MockGTID) GetLocalMGRStat ¶
GetLocalMGRStat mock.
func (*MockGTID) GetMGRGTID ¶
GetMGRGTID mock.
func (*MockGTID) GetMGRMasterUUID ¶
GetMGRMasterUUID mock.
func (*MockGTID) GetMGRStats ¶
GetMGRStats mock.
func (*MockGTID) GetMasterGTID ¶
GetMasterGTID mock.
func (*MockGTID) GetReplMode ¶
func (mogtid *MockGTID) GetReplMode() *model.MysqlReplMode
func (*MockGTID) GetSlaveGTID ¶
GetSlaveGTID mock.
func (*MockGTID) GrantAllPrivileges ¶
func (*MockGTID) GrantNormalPrivileges ¶
func (*MockGTID) GrantReplicationPrivileges ¶
func (*MockGTID) IsMGRRunningOK ¶
IsMGRRunningOK mock.
func (*MockGTID) MGRChangeMasterTo ¶
MGRChangeMasterTo 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) SetQueryTimeout ¶
SetQueryTimeout mock.
func (*MockGTID) SetReadOnly ¶
SetReadOnly mock.
func (*MockGTID) SetReplMode ¶
func (mogtid *MockGTID) SetReplMode(mode model.MysqlReplMode)
func (*MockGTID) SetSemiSyncMasterTimeout ¶
SetSemiSyncMasterTimeout mock.
func (*MockGTID) SetSemiWaitSlaveCount ¶
SetSemiWaitSlaveCount mock
func (*MockGTID) StartSlaveIOThread ¶
StartSlaveIOThread mock.
func (*MockGTID) StopSlaveIOThread ¶
StopSlaveIOThread mock.
func (*MockGTID) WaitApplyRelayLog ¶
WaitApplyRelayLog mock.
type Mysql ¶
type Mysql struct {
// contains filtered or unexported fields
}
Mysql tuple.
func MockMysqlReplUser ¶
MockMysqlReplUser mock.
func (*Mysql) ChangeMasterTo ¶
ChangeMasterTo used to do the 'change master to' command for async replication.
func (*Mysql) ChangeToMaster ¶
ChangeToMaster used to do the 'reset slave all' command for semi-sync or do the start group_replication for MGR as master.
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 gtid between from and this, for examples: master_log_file and read_master_log_pos
func (*Mysql) GTIDSetUnion ¶
GTIDSetUnion perform the union of two GTID sets, only for MGR.
func (*Mysql) GetGTID ¶
GetGTID returns the mysql GTID: If the repl mode is semi-sync, then return master_binlog and read_master_log_pos. 1. first try GetSlaveGTID 2. if STEP1) fails, try GetMasterGTID Otherwise, the repl mode is group-replication, then return MGR GTID.
func (*Mysql) GetGTIDSubtract ¶
func (*Mysql) GetLocalMGRStat ¶
GetLocalMGRStat returns the MGR status of local node.
func (*Mysql) GetMGRGTID ¶
GetMGRGTID used to get master binlog info.
func (*Mysql) GetMGRMasterUUID ¶
GetMGRMasterUUID used to get group replication master.
func (*Mysql) GetMGRStats ¶
GetMGRStats used to get group replication status of all nodes.
func (*Mysql) GetMasterGTID ¶
GetMasterGTID used to get master binlog info.
func (*Mysql) GetMysqlHandler ¶
func (m *Mysql) GetMysqlHandler() *MysqlHandler
GetMysqlHandler used to get the repl handler.
func (*Mysql) GetMysqlRPC ¶
GetMysqlRPC returns the MysqlRPC.
func (*Mysql) GetReplMode ¶
func (m *Mysql) GetReplMode() model.MysqlReplMode
GetReplMode returns the mysql replication mode.
func (*Mysql) GetSlaveGTID ¶
GetSlaveGTID used to get Relay_Master_Log_File and read_master_binlog_pos.
func (*Mysql) GetState ¶
func (m *Mysql) GetState() model.MysqlState
GetState returns the mysql state.
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) IsMGRRunningOK ¶
IsMGRRunningOK used to check whether the local MGR is running
func (*Mysql) MGRChangeMasterTo ¶
MGRChangeMasterTo used to do the 'change master to' command for MGR.
func (*Mysql) MGRGTIDGreaterThan ¶
GTIDGreaterThan used to compare GTID.
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) SemiSyncGTIDGreaterThan ¶
func (*Mysql) SetGlobalSysVar ¶
SetGlobalSysVar used to set global variables.
func (*Mysql) SetMasterGlobalSysVar ¶
SetMasterGlobalSysVar used to set master global variables.
func (*Mysql) SetMysqlHandler ¶
func (m *Mysql) SetMysqlHandler(h MysqlHandler)
SetMysqlHandler used to set the repl handler.
func (*Mysql) SetReadOnly ¶
SetReadOnly used to set the mysql to readonly.
func (*Mysql) SetReadWrite ¶
SetReadWrite used to set the mysql to write.
func (*Mysql) SetReplMode ¶
func (m *Mysql) SetReplMode(mode model.MysqlReplMode)
SetReplMode set the mysql replication mode.
func (*Mysql) SetSemiSyncMasterTimeout ¶
SetSemiSyncMasterTimeout used to set semi-sync master timeout.
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) SetState ¶
func (m *Mysql) SetState(state model.MysqlState)
SetState set the mysql state.
func (*Mysql) ShouldDeferFailover ¶
ShouldDeferFailover reports whether leader failover should be skipped because MySQL is unreachable only due to max_connections (Error 1040).
func (*Mysql) StartSlaveIOThread ¶
StartSlaveIOThread used to start the slave io thread.
func (*Mysql) StopSlaveIOThread ¶
StopSlaveIOThread used to stop the slave io thread.
func (*Mysql) WaitApplyRelayLog ¶
WaitApplyRelayLog used to do 'SELECT WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS' command.
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 Mysql56 ¶
type Mysql56 struct {
MysqlBase
}
Mysql56 tuple.
func (*Mysql56) ChangeUserPasswd ¶
ChangeUserPasswd used to change the user password.
func (*Mysql56) CreateUser ¶
func (my *Mysql56) CreateUser(db *sql.DB, user string, host string, passwd string, ssltype string) error
CreateUser use to create new user.
func (*Mysql56) CreateUserWithPrivileges ¶
func (my *Mysql56) CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
CreateUserWithPrivileges for create normal user.
type Mysql80 ¶
type Mysql80 struct {
MysqlBase
}
Mysql80 tuple.
func (*Mysql80) GetLocalMGRStat ¶
GetLocalMGRStat used to get MGR status.
type MysqlBase ¶
type MysqlBase struct {
MysqlHandler
// contains filtered or unexported fields
}
MysqlBase tuple.
func (*MysqlBase) ChangeMasterTo ¶
ChangeMasterTo stop for all channels and reset all replication filter to null. We never set replication filter.
func (*MysqlBase) ChangeToMaster ¶
ChangeToMaster changes a slave to be master.
func (*MysqlBase) ChangeUserPasswd ¶
ChangeUserPasswd used to change the user password.
func (*MysqlBase) CheckUserExists ¶
CheckUserExists used to check the user exists or not.
func (*MysqlBase) CreateReplUserWithoutBinlog ¶
CreateReplUserWithoutBinlog create replication accounts without writing binlog.
func (*MysqlBase) CreateUser ¶
func (my *MysqlBase) CreateUser(db *sql.DB, user string, host string, passwd string, ssltype string) error
CreateUser use to create new user. see http://dev.mysql.com/doc/refman/5.7/en/string-literals.html
func (*MysqlBase) CreateUserWithPrivileges ¶
func (my *MysqlBase) CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
CreateUserWithPrivileges for create normal user.
func (*MysqlBase) DisableSemiSyncMaster ¶
DisableSemiSyncMaster used to disable the semi-sync from master.
func (*MysqlBase) EnableSemiSyncMaster ¶
EnableSemiSyncMaster used to enable the semi-sync on master.
func (*MysqlBase) GTIDBigger ¶
GTIDBigger determine if the first GTID is bigger than another one.
func (*MysqlBase) GTIDDiff ¶
GTIDDiff used to get difference between gtid1 and gtid2. If gtid1 < gtid2, return "0" For example: gtid1 is uuid:1-100:1000-1003:2000-2005, gtid2 is uuid:1-99:1000-1002:2000-2005, the diff is 2
func (*MysqlBase) GTIDSubtract ¶
func (my *MysqlBase) GTIDSubtract(db *sql.DB, gtid1 string, gtid2 string) ([]map[string]string, error)
GTIDSubtract used to execute GTID_SUBTRACT
func (*MysqlBase) GetGTIDSubtract ¶
GetGTIDSubtract used to do "SELECT GTID_SUBTRACT('subsetGTID','setGTID') as gtid_sub" command
func (*MysqlBase) GetMGRGTID ¶
GetMGRGTID used to get binlog info from MGR.
func (*MysqlBase) GetMGRMasterUUID ¶
GetMGRMasterUUID used to get uuid of master.
func (*MysqlBase) GetMGRStats ¶
GetMGRStats used to get group_replication status of all nodes.
func (*MysqlBase) GetMasterGTID ¶
GetMasterGTID used to get binlog info from master.
func (*MysqlBase) GetReplMode ¶
func (my *MysqlBase) GetReplMode() *model.MysqlReplMode
GetReplMode used to get replication mode
func (*MysqlBase) GetServerID ¶
GetServerID used to get uuid.
func (*MysqlBase) GetSlaveGTID ¶
GetSlaveGTID gets the gtid from the default channel. Here, We just show the default slave channel.
func (*MysqlBase) GrantAllPrivileges ¶
func (my *MysqlBase) GrantAllPrivileges(db *sql.DB, user string, host string, passwd string, ssl string) error
GrantAllPrivileges used to grant all privis.
func (*MysqlBase) GrantNormalPrivileges ¶
GrantNormalPrivileges used to grants normal privileges.
func (*MysqlBase) GrantReplicationPrivileges ¶
GrantReplicationPrivileges used to grant repli privis.
func (*MysqlBase) IsMGRRunningOK ¶
IsMGRRunningOK used to check whether local MGR is running
func (*MysqlBase) MGRChangeMasterTo ¶
MGRChangeMasterTo stop for all channels and reset all replication filter to null. In NeoHA, we never set replication filter.
func (*MysqlBase) MGRChangeMasterToCommands ¶
func (*MysqlBase) Ping ¶
Ping has 2 affects: one for heath check other for get master_binglog the slave is syncing
func (*MysqlBase) PurgeBinlogsTo ¶
PurgeBinlogsTo used to purge binlog.
func (*MysqlBase) ResetMaster ¶
ResetMaster used to reset master.
func (*MysqlBase) ResetSlave ¶
ResetSlave used to reset slave.
func (*MysqlBase) ResetSlaveAll ¶
ResetSlaveAll used to reset slave.
func (*MysqlBase) SetGlobalSysVar ¶
SetGlobalSysVar used to set global variables.
func (*MysqlBase) SetQueryTimeout ¶
SetQueryTimeout used to set parameter queryTimeout
func (*MysqlBase) SetReadOnly ¶
SetReadOnly used to set mysql to readonly.
func (*MysqlBase) SetReplMode ¶
func (my *MysqlBase) SetReplMode(replMode model.MysqlReplMode)
SetReplMode used to set replication mode
func (*MysqlBase) SetSemiSyncMasterTimeout ¶
SetSemiSyncMasterTimeout used to set semi-sync master timeout
func (*MysqlBase) SetSemiWaitSlaveCount ¶
SetSemiWaitSlaveCount used set rpl_semi_sync_master_wait_for_slave_count
func (*MysqlBase) StartSlave ¶
StartSlave used to start slave.
func (*MysqlBase) StartSlaveIOThread ¶
StartSlaveIOThread used to start the io thread.
func (*MysqlBase) StopSlaveIOThread ¶
StopSlaveIOThread used to stop the op thread.
func (*MysqlBase) WaitApplyRelayLog ¶
WaitApplyRelayLog used to wait for the relay to apply completed.
func (*MysqlBase) 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 MysqlHandler ¶
type MysqlHandler interface {
SetReplMode(mode model.MysqlReplMode)
GetReplMode() *model.MysqlReplMode
SetQueryTimeout(int)
// check health and return log_bin_basename
Ping(*sql.DB) (*PingEntry, error)
// set mysql readonly variable
SetReadOnly(*sql.DB, bool) error
// get local UUID
GetUUID(*sql.DB) (string, error)
// get GTID from traversal binlog folder and find the newest one
GetMasterGTID(*sql.DB) (*model.GTID, error)
GetMGRGTID(*sql.DB) (*model.GTID, error)
// whether the first GTID is a subset of another one
GTIDBigger(*sql.DB, string, string) (bool, 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
// check whether local MGR is running
IsMGRRunningOK(*sql.DB) (bool, error)
// start group_replication
StartMGR(*sql.DB) error
// stop group_replication
StopMGR(*sql.DB) error
// use the provided master as the new master
MGRChangeMasterTo(*sql.DB, *model.Repl) error
// change a slave to master
ChangeToMaster(*sql.DB, *model.Repl) error
// get group replication status
GetMGRStats(db *sql.DB) ([]map[string]string, error)
// get group_replication status of local nodes
GetLocalMGRStat(db *sql.DB) (*model.MGRStatus, error)
// get group replication master
GetMGRMasterUUID(db *sql.DB) (string, error)
// waits until apply relay log completed
WaitApplyRelayLog(*sql.DB, int, int) error
// waits until slave replication reaches at least targetGTID
WaitUntilAfterGTID(*sql.DB, string) error
// get gtid subtract with slavegtid and master gtid
GetGTIDSubtract(*sql.DB, string, string) (string, error)
// set global variables
SetGlobalSysVar(db *sql.DB, varsql string) error
// reset master
ResetMaster(db *sql.DB) error
// reset slave
ResetSlave(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 semi-sync master-timeout
SetSemiSyncMasterTimeout(db *sql.DB, timeout uint64) error
//set rpl_semi_master_wait_for_slave_count
SetSemiWaitSlaveCount(db *sql.DB, count int) error
// User handlers.
GetUser(*sql.DB) ([]model.MysqlUser, error)
CheckUserExists(*sql.DB, string, string) (bool, error)
CreateUser(*sql.DB, string, string, string, string) error
DropUser(*sql.DB, string, string) error
ChangeUserPasswd(*sql.DB, string, string, string) error
CreateReplUserWithoutBinlog(*sql.DB, string, string) error
GrantAllPrivileges(*sql.DB, string, string, string, string) error
GrantNormalPrivileges(*sql.DB, string, string) error
CreateUserWithPrivileges(db *sql.DB, user, passwd, database, table, host, privs string, ssl string) error
GrantReplicationPrivileges(*sql.DB, string) error
}
MysqlHandler interface.
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) GTIDSubtract ¶
func (m *MysqlRPC) GTIDSubtract(req *model.MysqlGTIDSubtractRPCRequest, rsp *model.MysqlGTIDSubtractRPCResponse) error
GTIDSubstract returns the mysql GTID subtract info.
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) ResetSlave ¶
func (m *MysqlRPC) ResetSlave(req *model.MysqlRPCRequest, rsp *model.MysqlRPCResponse) error
ResetSlave used to reset slave.
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) SetState ¶
func (m *MysqlRPC) SetState(req *model.MysqlSetStateRPCRequest, rsp *model.MysqlSetStateRPCResponse) error
SetState used to set the mysql state.
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.