Merge pull request #963 from midoks/dev

常规优化
This commit is contained in:
Mr Chen
2026-11-04 12:43:49 +08:00
committed by GitHub
34 changed files with 219 additions and 34 deletions

View File

@@ -71,7 +71,11 @@ replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data

View File

@@ -2378,10 +2378,10 @@ def getMasterRepSlaveUserCmd(version):
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 = '<span class="set-info c7 ta_center">经典模式</span><hr style="margin-top: 5px;margin-bottom: 10px;"/>'
sql += base_sql + "', MASTER_LOG_FILE='" + mstatus[0]["File"] + \
"',MASTER_LOG_POS=" + str(mstatus[0]["Position"])
sql += "<br/><hr/>";
sql = '<br/><span class="set-info c7 ta_center">GTID模式</span><hr style="margin-top: 5px;margin-bottom: 10px;"/>'
sql += base_sql + "',MASTER_USE_GTID=slave_pos,MASTER_CONNECT_RETRY=10;";
sql += "<br/>";
@@ -2679,7 +2679,8 @@ def getSlaveList(version=''):
data = {}
data['data'] = dlist
return mw.getJson(data)
# 状态字段中包含 datetime 等对象,需转成字符串后才能序列化
return json.dumps(data, default=str)
def trySlaveSyncBugfix(version=''):
if status(version) == 'stop':

View File

@@ -1798,7 +1798,7 @@ function getMasterRepSlaveUserCmd(username, db=''){
var loadOpen = layer.open({
type: 1,
title: '同步命令',
title: '同步命令[ 1-经典模式,2-GTID ]',
area: '500px',
content:"<form class='bt-form pd20 pb70' id='add_master'>\
<div class='line' style='word-wrap: break-word;word-break: normal;'>"+cmd+"</div>\

View File

@@ -73,6 +73,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -73,6 +73,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -15,10 +15,12 @@ socket = {$SERVER_APP_PATH}/mysql.sock
datadir = {$SERVER_APP_PATH}/data
log-error = {$SERVER_APP_PATH}/data/error.log
server-id = {$SERVER_ID}
sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
default_storage_engine = InnoDB
language={$SERVER_APP_PATH}/share/english
lc-messages-dir={$SERVER_APP_PATH}/share
explicit_defaults_for_timestamp = ON
key_buffer_size = 8M
table_open_cache = 32
@@ -75,6 +77,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
master_info_repository = table
relay_log_info_repository = table

View File

@@ -65,6 +65,11 @@ binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
#slave
log_replica_updates
#replicate-do-db

View File

@@ -73,6 +73,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -73,6 +73,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -73,6 +73,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -73,6 +73,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -73,6 +73,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -64,6 +64,7 @@ binlog-ignore-db = mysql
binlog-ignore-db = information_schema
binlog-ignore-db = performance_schema
#slave
log_replica_updates
#replicate-do-db
@@ -73,6 +74,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -73,6 +73,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -73,6 +73,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
default_storage_engine = InnoDB
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -3005,10 +3005,18 @@ def initSlaveStatus(version=''):
return mw.returnJson(False, '需要先设置同步配置')
mode = mw.readFile(mode_file)
if mode == 'ssh':
return initSlaveStatusSSH(version)
if mode == 'sync-user':
return initSlaveStatusSyncUser(version)
try:
if mode == 'ssh':
return initSlaveStatusSSH(version)
if mode == 'sync-user':
return initSlaveStatusSyncUser(version)
except Exception as e:
estr = str(e)
if '1045' in estr or 'Access denied' in estr:
return mw.returnJson(False, 'root密码错误,请先在面板[修改root密码]或点[一键修复]重置密码!')
if '2003' in estr or 'Can\'t connect' in estr or '2006' in estr:
return mw.returnJson(False, 'MySQL连接失败: ' + estr)
return mw.returnJson(False, '初始化同步状态失败: ' + estr)
def parseSlaveSyncCmd(cmd):
@@ -3040,11 +3048,21 @@ def initSlaveStatusSyncUser(version=''):
slave_name = getSlaveName()
# print(data)
pdb = pMysqlDb()
if len(slave_data) == 1:
dlist = pdb.query('show '+slave_name+' status')
if len(dlist) > 0:
return mw.returnJson(False, '已经初始化好了zz...')
try:
pdb = pMysqlDb()
except Exception as e:
return mw.returnJson(False, '数据库连接失败: ' + str(e))
try:
if len(slave_data) == 1:
dlist = pdb.query('show '+slave_name+' status')
if len(dlist) > 0:
return mw.returnJson(False, '已经初始化好了zz...')
except Exception as e:
estr = str(e)
if '1045' in estr or 'Access denied' in estr:
return mw.returnJson(False, 'root密码错误,请先在面板[修改root密码]或点[一键修复]重置密码!')
return mw.returnJson(False, '检查同步状态失败: ' + estr)
msg = ''
local_mode = recognizeDbMode()
@@ -3102,8 +3120,14 @@ def initSlaveStatusSyncUser(version=''):
def initSlaveStatusSSH(version=''):
slave_name = getSlaveName()
db = pMysqlDb()
dlist = db.query('show '+slave_name+' status')
try:
db = pMysqlDb()
dlist = db.query('show '+slave_name+' status')
except Exception as e:
estr = str(e)
if '1045' in estr or 'Access denied' in estr:
return mw.returnJson(False, 'root密码错误,请先在面板[修改root密码]或点[一键修复]重置密码!')
return mw.returnJson(False, '数据库连接失败: ' + estr)
conn = pSqliteDb('slave_id_rsa')
ssh_list = conn.field('ip,port,id_rsa,db_user').select()

View File

@@ -83,6 +83,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -83,6 +83,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -82,6 +82,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -85,6 +85,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -87,6 +87,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
master_info_repository = table
relay_log_info_repository = table

View File

@@ -87,6 +87,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -86,6 +86,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -86,6 +86,11 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -83,6 +83,10 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -83,6 +83,10 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -83,6 +83,10 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -83,6 +83,10 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -83,6 +83,10 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -83,6 +83,10 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -83,6 +83,10 @@ replicate-ignore-db = performance_schema
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-wild-ignore-table = mysql.%
replicate-wild-ignore-table = information_schema.%
replicate-wild-ignore-table = performance_schema.%
replicate-wild-ignore-table = sys.%
innodb_data_home_dir = {$SERVER_APP_PATH}/data
innodb_data_file_path = ibdata1:10M:autoextend

View File

@@ -3172,10 +3172,19 @@ def initSlaveStatus(version=''):
return mw.returnJson(False, '需要先设置同步配置')
mode = mw.readFile(mode_file)
if mode == 'ssh':
return initSlaveStatusSSH(version)
if mode == 'sync-user':
return initSlaveStatusSyncUser(version)
try:
if mode == 'ssh':
return initSlaveStatusSSH(version)
if mode == 'sync-user':
return initSlaveStatusSyncUser(version)
except Exception as e:
# 密码错误/连接失败时返回友好提示, 不要把 traceback 暴露给调用方
estr = str(e)
if '1045' in estr or 'Access denied' in estr:
return mw.returnJson(False, 'root密码错误,请先在面板[修改root密码]或点[一键修复]重置密码!')
if '2003' in estr or 'Can\'t connect' in estr or '2006' in estr:
return mw.returnJson(False, 'MySQL连接失败: ' + estr)
return mw.returnJson(False, '初始化同步状态失败: ' + estr)
def makeSyncUsercmd(u, version=''):
@@ -3226,12 +3235,22 @@ def initSlaveStatusSyncUser(version=''):
slave_name = getSlaveName()
# print(data)
pdb = pMysqlDb()
if len(slave_data) == 1:
cmd_slave = 'show '+slave_name+' status'
dlist = pdb.query(cmd_slave)
if dlist and len(dlist) > 0:
return mw.returnJson(False, '已经初始化好了zz...')
try:
pdb = pMysqlDb()
except Exception as e:
return mw.returnJson(False, '数据库连接失败: ' + str(e))
try:
if len(slave_data) == 1:
cmd_slave = 'show '+slave_name+' status'
dlist = pdb.query(cmd_slave)
if dlist and len(dlist) > 0:
return mw.returnJson(False, '已经初始化好了zz...')
except Exception as e:
estr = str(e)
if '1045' in estr or 'Access denied' in estr:
return mw.returnJson(False, 'root密码错误,请先在面板[修改root密码]或点[一键修复]重置密码!')
return mw.returnJson(False, '检查同步状态失败: ' + estr)
msg = ''
local_mode = recognizeDbMode()

View File

@@ -253,23 +253,25 @@ def initDreplace(version=''):
mw.execShell('chmod +x ' + file_bin)
return file_bin
def status(version=''):
def status_proccess(version=''):
data = mw.execShell(
"ps -ef|grep bin/postgres |grep -v grep | grep -v python | grep -v mdserver-web | awk '{print $2}'")
if data[0] == '':
return 'stop'
return 'start'
def status(version=''):
pid = getServerDir() + "/data/postmaster.pid"
if os.path.exists(pid):
return 'start'
return 'stop'
def pgCmd(cmd):
return "su - postgres -c \"" + cmd + "\""
def execShellPg(cmd):
return mw.execShell(pgCmd(cmd))
def pGetDbUser():
if mw.isAppleSystem():
user = mw.execShell(
@@ -277,7 +279,6 @@ def pGetDbUser():
return user
return 'postgresql'
def initPgData():
serverdir = getServerDir()
if not os.path.exists(serverdir + '/data'):
@@ -289,7 +290,6 @@ def initPgData():
return False
return True
def initPgPwd():
serverdir = getServerDir()

View File

@@ -300,6 +300,12 @@ html {
vertical-align: 0
}
.ta_center{
text-align: center;
display: flex;
justify-content: center;
}
.ico-font-ask {
border: 1px solid #999;
border-radius: 8px;