Skip to content

Commit fb72259

Browse files
authored
Merge pull request #571 from ahfa92/proxysql-issue
Set Writer From Reader List when Master as Reader is enabled
2 parents e9d2c5a + 9166498 commit fb72259

File tree

2 files changed

+21
-5
lines changed

2 files changed

+21
-5
lines changed

cluster/prx_proxysql.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,7 @@ func (proxy *ProxySQLProxy) Failover() {
231231
}
232232
}
233233
if s.IsMaster() && !s.IsRelay && cluster.oldMaster != nil {
234-
err = psql.ReplaceWriter(misc.Unbracket(s.Host), s.Port, misc.Unbracket(cluster.oldMaster.Host), cluster.oldMaster.Port, cluster.Configurator.HasProxyReadLeader(), proxy.UseSSL())
234+
err = psql.ReplaceWriter(misc.Unbracket(s.Host), s.Port, misc.Unbracket(cluster.oldMaster.Host), cluster.oldMaster.Port, cluster.Configurator.HasProxyReadLeader())
235235
if err != nil {
236236
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, LvlErr, "Failover ProxySQL could not set server %s Master (%s)", s.URL, err)
237237
} else {
@@ -407,7 +407,7 @@ func (proxy *ProxySQLProxy) Refresh() error {
407407
} else if s.IsSlaveOrSync() && !s.IsIgnored() && (s.PrevState == stateUnconn || s.PrevState == stateFailed) {
408408
err = psql.SetReader(misc.Unbracket(s.Host), s.Port)
409409
if cluster.Conf.ProxysqlDebug {
410-
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, LvlInfo, "Monitor ProxySQL setting reader standalone server %s", s.URL)
410+
cluster.LogModulePrintf(cluster.Conf.Verbose, config.ConstLogModProxySQL, LvlDbg, "Monitor ProxySQL setting reader standalone server %s", s.URL)
411411
}
412412
if err != nil {
413413
cluster.StateMachine.AddState("ERR00072", state.State{ErrType: "WARNING", ErrDesc: fmt.Sprintf(clusterError["ERR00072"], proxy.Name, s.URL, err), ErrFrom: "PRX", ServerUrl: proxy.Name})

router/proxysql/proxysql.go

+19-3
Original file line numberDiff line numberDiff line change
@@ -236,14 +236,20 @@ func (psql *ProxySQL) ReloadTLS() error {
236236
return err
237237
}
238238

239-
func (psql *ProxySQL) ReplaceWriter(host string, port string, oldhost string, oldport string, masterasreader bool, use_ssl string) error {
239+
func (psql *ProxySQL) CopyReaderToWriter(host string, port string) error {
240+
sql := fmt.Sprintf("REPLACE INTO mysql_servers (hostgroup_id, hostname, port, gtid_port, status, weight, compression, max_connections, max_replication_lag, use_ssl, max_latency_ms) SELECT '%s', hostname, port, gtid_port, status, weight, compression, max_connections, max_replication_lag, use_ssl, max_latency_ms FROM mysql_servers WHERE hostgroup_id = '%s' AND hostname = '%s' AND port = '%s'", psql.WriterHG, psql.ReaderHG, host, port)
241+
_, err := psql.Connection.Exec(sql)
242+
return err
243+
}
244+
245+
func (psql *ProxySQL) ReplaceWriter(host string, port string, oldhost string, oldport string, masterasreader bool) error {
240246

241247
if masterasreader {
242248
err := psql.DeleteAllWriters()
243249
if err != nil {
244250
return err
245251
}
246-
err = psql.AddServerAsWriter(host, port, use_ssl)
252+
err = psql.CopyReaderToWriter(host, port)
247253
return err
248254
} else {
249255
err := psql.SetReader(oldhost, oldport)
@@ -383,7 +389,7 @@ func (psql *ProxySQL) LoadServersToRuntime() error {
383389
}
384390

385391
func (psql *ProxySQL) SaveServersToDisk() error {
386-
_, err := psql.Connection.Exec("SAVE PROXYSQL SERVERS TO DISK")
392+
_, err := psql.Connection.Exec("SAVE MYSQL SERVERS TO DISK")
387393
return err
388394
}
389395

@@ -416,3 +422,13 @@ func (psql *ProxySQL) Shutdown() error {
416422
_, err := psql.Connection.Exec("PROXYSQL KILL")
417423
return err
418424
}
425+
426+
func (psql *ProxySQL) LoadProxiesToRuntime() error {
427+
_, err := psql.Connection.Exec("LOAD PROXYSQL SERVERS TO RUNTIME")
428+
return err
429+
}
430+
431+
func (psql *ProxySQL) SaveProxiesToDisk() error {
432+
_, err := psql.Connection.Exec("SAVE PROXYSQL SERVERS TO DISK")
433+
return err
434+
}

0 commit comments

Comments
 (0)