Update index.py

pull/617/head
Mr Chen 10 months ago
parent f42ec4973a
commit 52bb6099d7
  1. 62
      plugins/mariadb/index.py

@ -2033,6 +2033,64 @@ def addMasterRepSlaveUser(version=''):
return mw.returnJson(True, '添加成功!')
def getMasterRepSlaveUserCmdSsh(version):
args = getArgs()
data = checkArgs(args, ['username', 'db'])
if not data[0]:
return data[1]
psdb = pSqliteDb('master_replication_user')
f = 'username,password'
username = args['username']
if username == '':
count = psdb.count()
if count == 0:
return mw.returnJson(False, '请添加同步账户!')
clist = psdb.field(f).limit('1').order('id desc').select()
else:
clist = psdb.field(f).where("username=?", (username,)).limit(
'1').order('id desc').select()
if len(clist) == 0:
return mw.returnJson(False, '错误同步账户!')
ip = mw.getLocalIp()
port = getMyPort()
db = pMysqlDb()
mstatus = db.query('show master status')
if len(mstatus) == 0:
return mw.returnJson(False, '未开启!')
mode = recognizeDbMode()
# 查找同步点
# SELECT BINLOG_GTID_POS('master1-bin.000002', 561866201);
sid = getDbServerId()
connection_name = ""
if sid != '':
connection_name = "'r{}' ".format(sid)
# MASTER_USE_GTID={current_pos|slave_pos|no}
# current_pos 依赖-> select @@global.gtid_current_pos;
# slave_pos 依赖-> select @@global.gtid_slave_pos;
# no -> 啥都不依赖,保证多主同步成功。同步出现问题,根据日志查找问题。
base_sql = "CHANGE MASTER " + connection_name + "TO MASTER_HOST='" + ip + "', MASTER_PORT=" + port + ", MASTER_USER='" + \
clist[0]['username'] + "', MASTER_PASSWORD='" + \
clist[0]['password'];
sql = ''
sql += base_sql + "', MASTER_LOG_FILE='" + mstatus[0]["File"] + \
"',MASTER_LOG_POS=" + str(mstatus[0]["Position"])
data = {}
data['cmd'] = sql
data["info"] = clist[0]
data['mode'] = mode
return mw.returnJson(True, 'ok!', data)
def getMasterRepSlaveUserCmd(version):
args = getArgs()
@ -2543,7 +2601,7 @@ def initSlaveStatusSSH(version=''):
username='root', pkey=key)
db_user = data['db_user']
cmd = 'cd /www/server/mdserver-web && source bin/activate && python3 plugins/mariadb/index.py get_master_rep_slave_user_cmd {"username":"' + db_user + '","db":""}'
cmd = 'cd /www/server/mdserver-web && source bin/activate && python3 plugins/mariadb/index.py get_master_rep_slave_user_cmd_ssh {"username":"' + db_user + '","db":""}'
stdin, stdout, stderr = ssh.exec_command(cmd)
result = stdout.read()
result = result.decode('utf-8')
@ -3413,6 +3471,8 @@ if __name__ == "__main__":
print(delMasterRepSlaveUser(version))
elif func == 'update_master_rep_slave_user':
print(updateMasterRepSlaveUser(version))
elif func == 'get_master_rep_slave_user_cmd_ssh':
print(getMasterRepSlaveUserCmdSsh(version))
elif func == 'get_master_rep_slave_user_cmd':
print(getMasterRepSlaveUserCmd(version))
elif func == 'get_slave_list':

Loading…
Cancel
Save