pull/109/head
midoks 4 years ago
parent eab01dc75b
commit ef0a9f07e3
  1. 104
      plugins/mysql/index.py
  2. 129
      plugins/mysql/js/mysql.js

@ -1126,78 +1126,110 @@ def getTotalStatistics():
return mw.returnJson(False, 'fail', data)
def getMasterStatus(version=''):
conf = getConf()
con = mw.readFile(conf)
master_status = False
if con.find('#log-bin') == -1 and con.find('log-bin') > 1:
if con.find('#binlog-do-db') == -1 and con.find('binlog-do-db') > 1:
master_status = True
data = {}
data['status'] = master_status
return mw.returnJson(master_status, '设置成功')
def setMasterStatus(version=''):
conf = getConf()
con = mw.readFile(conf)
if con.find('#binlog-do-db') != -1:
con = con.replace('#binlog-do-db', 'binlog-do-db')
con = con.replace('#binlog-ignore-db', 'binlog-ignore-db')
restart()
else:
con = con.replace('binlog-do-db', '#binlog-do-db')
con = con.replace('binlog-ignore-db', '#binlog-ignore-db')
restart()
mw.writeFile(conf, con)
return mw.returnJson(True, '设置成功')
if __name__ == "__main__":
func = sys.argv[1]
version = sys.argv[2]
if func == 'status':
print status(version)
print(status(version))
elif func == 'start':
print start(version)
print(start(version))
elif func == 'stop':
print stop(version)
print(top(version))
elif func == 'restart':
print restart(version)
print(restart(version))
elif func == 'reload':
print reload(version)
print(reload(version))
elif func == 'initd_status':
print initdStatus()
print(initdStatus())
elif func == 'initd_install':
print initdInstall()
print(initdInstall())
elif func == 'initd_uninstall':
print initdUinstall()
print(initdUinstall())
elif func == 'run_info':
print runInfo()
print(runInfo())
elif func == 'db_status':
print myDbStatus()
print(myDbStatus())
elif func == 'set_db_status':
print setDbStatus()
print(setDbStatus())
elif func == 'conf':
print getConf()
print(getConf())
elif func == 'bin_log':
print binLog()
print(binLog())
elif func == 'error_log':
print getErrorLog()
print(getErrorLog())
elif func == 'show_log':
print getShowLogFile()
print(getShowLogFile())
elif func == 'my_db_pos':
print getMyDbPos()
print(getMyDbPos())
elif func == 'set_db_pos':
print setMyDbPos()
print(setMyDbPos())
elif func == 'my_port':
print getMyPort()
print(getMyPort())
elif func == 'set_my_port':
print setMyPort()
print(setMyPort())
elif func == 'init_pwd':
print initMysqlPwd()
print(initMysqlPwd())
elif func == 'get_db_list':
print getDbList()
print(getDbList())
elif func == 'add_db':
print addDb()
print(addDb())
elif func == 'del_db':
print delDb()
print(delDb())
elif func == 'sync_get_databases':
print syncGetDatabases()
print(syncGetDatabases())
elif func == 'sync_to_databases':
print syncToDatabases()
print(syncToDatabases())
elif func == 'set_root_pwd':
print setRootPwd()
print(setRootPwd())
elif func == 'set_user_pwd':
print setUserPwd()
print(setUserPwd())
elif func == 'get_db_access':
print getDbAccess()
print(getDbAccess())
elif func == 'set_db_access':
print setDbAccess()
print(setDbAccess())
elif func == 'set_db_ps':
print setDbPs()
print(setDbPs())
elif func == 'get_db_info':
print getDbInfo()
print(getDbInfo())
elif func == 'repair_table':
print repairTable()
print(repairTable())
elif func == 'opt_table':
print optTable()
print(optTable())
elif func == 'alter_table':
print alterTable()
print(alterTable())
elif func == 'get_total_statistics':
print getTotalStatistics()
print(getTotalStatistics())
elif func == 'get_master_status':
print(getMasterStatus(version))
elif func == 'set_master_status':
print(setMasterStatus(version))
else:
print 'error'
print('error')

@ -1104,62 +1104,83 @@ function repTools(db_name, res){
function masterOrSlaveConf(version){
var _data = {};
if (typeof(page) =='undefined'){
var page = 1;
}
_data['page'] = page;
_data['page_size'] = 10;
if(typeof(search) != 'undefined'){
_data['search'] = search;
}
myPost('get_db_list', _data, function(data){
var rdata = $.parseJSON(data.data);
var list = '';
for(i in rdata.data){
list += '<tr>';
list += '<td>' + rdata.data[i]['name'] +'</td>';
list += '<td>' + rdata.data[i]['username'] +'</td>';
list += '<td>' +
'<span class="password" data-pw="'+rdata.data[i]['password']+'">***</span>' +
'<span onclick="showHidePass(this)" class="glyphicon glyphicon-eye-open cursor pw-ico" style="margin-left:10px"></span>'+
'<span class="ico-copy cursor btcopy" style="margin-left:10px" title="复制密码" onclick="copyPass(\''+rdata.data[i]['password']+'\')"></span>'+
'</td>';
list += '<td style="text-align:right">' +
'<a href="javascript:;" class="btlink" onclick="setDbAccess(\''+rdata.data[i]['username']+'\')" title="设置数据库权限">权限</a> | ' +
'<a href="javascript:;" class="btlink" onclick="setDbPass('+rdata.data[i]['id']+',\''+ rdata.data[i]['username'] +'\',\'' + rdata.data[i]['password'] + '\')">改密</a> | ' +
'<a href="javascript:;" class="btlink" onclick="delDb(\''+rdata.data[i]['id']+'\',\''+rdata.data[i]['name']+'\')" title="删除数据库">删除</a>' +
'</td>';
list += '</tr>';
function getDbList(){
var _data = {};
if (typeof(page) =='undefined'){
var page = 1;
}
_data['page'] = page;
_data['page_size'] = 10;
if(typeof(search) != 'undefined'){
_data['search'] = search;
}
//<button onclick="" id="dataRecycle" title="删除选中项" class="btn btn-default btn-sm" style="margin-left: 5px;"><span class="glyphicon glyphicon-trash" style="margin-right: 5px;"></span>回收站</button>
var con = '<div class="safe bgw">\
<div class="divtable mtb10">\
<div class="tablescroll">\
<table id="DataBody" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\
<thead><tr>\
<th>数据库名</th>\
<th>用户名</th>\
<th>密码</th>\
<th style="text-align:right;">操作</th></tr></thead>\
<tbody>\
'+ list +'\
</tbody></table>\
</div>\
<div id="databasePage" class="dataTables_paginate paging_bootstrap page"></div>\
</div>\
</div>';
var limitCon = '<p class="conf_p">\
<span class="f14 c6 mr20">Master[]配置</span><span class="f14 c6 mr20"></span>\
<button class="btn btn-success btn-xs btn-bin va0">开启</button><hr/>\
</p>';
myPost('get_db_list', _data, function(data){
var rdata = $.parseJSON(data.data);
var list = '';
for(i in rdata.data){
list += '<tr>';
list += '<td>' + rdata.data[i]['name'] +'</td>';
list += '<td>' + rdata.data[i]['username'] +'</td>';
list += '<td>' +
'<span class="password" data-pw="'+rdata.data[i]['password']+'">***</span>' +
'<span onclick="showHidePass(this)" class="glyphicon glyphicon-eye-open cursor pw-ico" style="margin-left:10px"></span>'+
'<span class="ico-copy cursor btcopy" style="margin-left:10px" title="复制密码" onclick="copyPass(\''+rdata.data[i]['password']+'\')"></span>'+
'</td>';
list += '<td style="text-align:right">' +
'<a href="javascript:;" class="btlink" onclick="setDbAccess(\''+rdata.data[i]['username']+'\')" title="设置数据库权限">权限</a> | ' +
'<a href="javascript:;" class="btlink" onclick="setDbPass('+rdata.data[i]['id']+',\''+ rdata.data[i]['username'] +'\',\'' + rdata.data[i]['password'] + '\')">改密</a> | ' +
'<a href="javascript:;" class="btlink" onclick="delDb(\''+rdata.data[i]['id']+'\',\''+rdata.data[i]['name']+'\')" title="删除数据库">删除</a>' +
'</td>';
list += '</tr>';
}
$(".soft-man-con").html(limitCon+con);
$('#databasePage').html(rdata.page);
});
var con = '<div class="divtable mtb10">\
<div class="tablescroll">\
<table id="DataBody" class="table table-hover" width="100%" cellspacing="0" cellpadding="0" border="0" style="border: 0 none;">\
<thead><tr>\
<th>数据库名</th>\
<th>用户名</th>\
<th>密码</th>\
<th style="text-align:right;">操作</th></tr></thead>\
<tbody>\
'+ list +'\
</tbody></table>\
</div>\
<div id="databasePage" class="dataTables_paginate paging_bootstrap page"></div>\
</div>';
$(".table_master_list").html(con);
$('#databasePage').html(rdata.page);
});
}
function getMasterStatus(){
myPost('get_master_status', '', function(data){
var rdata = $.parseJSON(data.data);
var limitCon = '<p class="conf_p">\
<span class="f14 c6 mr20">Master[]配置</span><span class="f14 c6 mr20"></span>\
<button class="btn btn-success btn-xs btn-master va0">'+(!rdata.status ? '未开启' : '已开启') +'</button><hr/>\
</p>\
<!-- master list -->\
<div class="safe bgw table_master_list"></div>\
';
$(".soft-man-con").html(limitCon);
//设置主服务器配置
$(".btn-master").click(function () {
// console.log('.....');
myPost('set_master_status', 'close=change', function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 });
setTimeout(function(){
getMasterStatus();
}, 2000);
});
});
getDbList();
});
}
getMasterStatus();
}

Loading…
Cancel
Save