function selectChange() { $("#SelectVersion,#selectVer").change(function() { var info = $(this).val(); var name = info.split(" ")[0]; var version = info.split(" ")[1]; max = 64 msg = "64M" if (name == 'mysql') { memSize = getCookie('memSize'); switch (version) { case '5.1': max = 256; msg = '256M'; break; case '8.0': max = 5200; msg = '6GB'; break; case '5.7': max = 1500; msg = '2GB'; break; case '5.6': max = 800; msg = '1GB'; break; case 'AliSQL': max = 800; msg = '1GB'; break; case 'mariadb_10.0': max = 800; msg = '1GB'; break; case 'mariadb_10.1': max = 1500; msg = '2GB'; break; } if (memSize < max) { layer.msg(lan.bt.insatll_mem.replace('{1}', msg).replace('{2}', version), { icon: 5 }); } } }); } //设置二进制日志 function SetBinLog() { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: 0.3 }); $.post('/database?action=BinLog', "", function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); mysqlLog(); }); } //清空日志 function closeMySqlLog() { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: 0.3 }); $.post('/database?action=GetErrorLog', "close=1", function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); mysqlLog(); }); } //数据库端口 function changeMySQLPort(act) { if (act != undefined) { layer.confirm(lan.soft.mysql_port_title, { closeBtn: 2, icon: 3 }, function() { var port = $("#dataport").val(); var data = 'port=' + port; var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/database?action=SetMySQLPort', data, function(rdata) { layer.close(loadT) layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); }); }); return; } $.post('/database?action=GetMySQLInfo', '', function(rdata) { var LimitCon = '

\ \ \

'; $(".soft-man-con").html(LimitCon); }); } //软件切换版本 function softChangeVer(name, version) { if (name == "mysqld") name = "mysql"; var veropt = version.split("|"); var SelectVersion = ''; for (var i = 0; i < veropt.length; i++) { SelectVersion += ''; } var body = "
" + lan.soft.select_version + "
'; if (name == 'mysql') { body += "" } $(".soft-man-con").html(body); $(".btn-success").click(function() { var ver = $("#selectVer").val(); oneInstall(name, ver.split(" ")[1]); }); selectChange(); } //设置MySQL配置参数 function SetMySQLConf() { $.post('/system?action=GetMemInfo', '', function(memInfo) { //var memSize = memInfo['memTotal']; //var setSize = parseInt($("input[name='memSize']").val()); //if(memSize < setSize){ // var msg = lan.soft.mysql_set_err.replace('{1}',memSize).replace('{2}',setSize); // layer.msg(msg,{icon:2,time:5000}); // return; //} var query_cache_size = parseInt($("input[name='query_cache_size']").val()); var query_cache_type = 0; if (query_cache_size > 0) { query_cache_type = 1; } var data = { key_buffer_size: parseInt($("input[name='key_buffer_size']").val()), query_cache_size: query_cache_size, query_cache_type: query_cache_type, tmp_table_size: parseInt($("input[name='tmp_table_size']").val()), max_heap_table_size: parseInt($("input[name='tmp_table_size']").val()), innodb_buffer_pool_size: parseInt($("input[name='innodb_buffer_pool_size']").val()), innodb_log_buffer_size: parseInt($("input[name='innodb_log_buffer_size']").val()), sort_buffer_size: parseInt($("input[name='sort_buffer_size']").val()), read_buffer_size: parseInt($("input[name='read_buffer_size']").val()), read_rnd_buffer_size: parseInt($("input[name='read_rnd_buffer_size']").val()), join_buffer_size: parseInt($("input[name='join_buffer_size']").val()), thread_stack: parseInt($("input[name='thread_stack']").val()), binlog_cache_size: parseInt($("input[name='binlog_cache_size']").val()), thread_cache_size: parseInt($("input[name='thread_cache_size']").val()), table_open_cache: parseInt($("input[name='table_open_cache']").val()), max_connections: parseInt($("input[name='max_connections']").val()) }; $.post('/database?action=SetDbConf', data, function(rdata) { layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); }) } //MySQL内存优化方案 function MySQLMemOpt(opt) { var query_size = parseInt($("input[name='query_cache_size']").val()); switch (opt) { case '1': $("input[name='key_buffer_size']").val(128); if (query_size) $("input[name='query_cache_size']").val(64); $("input[name='tmp_table_size']").val(64); $("input[name='innodb_buffer_pool_size']").val(256); $("input[name='sort_buffer_size']").val(768); $("input[name='read_buffer_size']").val(768); $("input[name='read_rnd_buffer_size']").val(512); $("input[name='join_buffer_size']").val(1024); $("input[name='thread_stack']").val(256); $("input[name='binlog_cache_size']").val(64); $("input[name='thread_cache_size']").val(64); $("input[name='table_open_cache']").val(128); $("input[name='max_connections']").val(100); break; case '2': $("input[name='key_buffer_size']").val(256); if (query_size) $("input[name='query_cache_size']").val(128); $("input[name='tmp_table_size']").val(384); $("input[name='innodb_buffer_pool_size']").val(384); $("input[name='sort_buffer_size']").val(768); $("input[name='read_buffer_size']").val(768); $("input[name='read_rnd_buffer_size']").val(512); $("input[name='join_buffer_size']").val(2048); $("input[name='thread_stack']").val(256); $("input[name='binlog_cache_size']").val(64); $("input[name='thread_cache_size']").val(96); $("input[name='table_open_cache']").val(192); $("input[name='max_connections']").val(200); break; case '3': $("input[name='key_buffer_size']").val(384); if (query_size) $("input[name='query_cache_size']").val(192); $("input[name='tmp_table_size']").val(512); $("input[name='innodb_buffer_pool_size']").val(512); $("input[name='sort_buffer_size']").val(1024); $("input[name='read_buffer_size']").val(1024); $("input[name='read_rnd_buffer_size']").val(768); $("input[name='join_buffer_size']").val(2048); $("input[name='thread_stack']").val(256); $("input[name='binlog_cache_size']").val(128); $("input[name='thread_cache_size']").val(128); $("input[name='table_open_cache']").val(384); $("input[name='max_connections']").val(300); break; case '4': $("input[name='key_buffer_size']").val(512); if (query_size) $("input[name='query_cache_size']").val(256); $("input[name='tmp_table_size']").val(1024); $("input[name='innodb_buffer_pool_size']").val(1024); $("input[name='sort_buffer_size']").val(2048); $("input[name='read_buffer_size']").val(2048); $("input[name='read_rnd_buffer_size']").val(1024); $("input[name='join_buffer_size']").val(4096); $("input[name='thread_stack']").val(384); $("input[name='binlog_cache_size']").val(192); $("input[name='thread_cache_size']").val(192); $("input[name='table_open_cache']").val(1024); $("input[name='max_connections']").val(400); break; case '5': $("input[name='key_buffer_size']").val(1024); if (query_size) $("input[name='query_cache_size']").val(384); $("input[name='tmp_table_size']").val(2048); $("input[name='innodb_buffer_pool_size']").val(4096); $("input[name='sort_buffer_size']").val(4096); $("input[name='read_buffer_size']").val(4096); $("input[name='read_rnd_buffer_size']").val(2048); $("input[name='join_buffer_size']").val(8192); $("input[name='thread_stack']").val(512); $("input[name='binlog_cache_size']").val(256); $("input[name='thread_cache_size']").val(256); $("input[name='table_open_cache']").val(2048); $("input[name='max_connections']").val(500); break; } } //重启MySQL function ReBootMySqld() { var loadT = layer.msg(lan.get('service_the', [lan.bt.restart, 'MySQLd']), { icon: 16, time: 0, shade: 0.3 }); $.post('/system?action=ServiceAdmin', 'name=mysqld&type=restart', function(rdata) { layer.close(loadT); layer.msg(rdata.msg, { icon: rdata.status ? 1 : 2 }); }); } //计算MySQL内存开销 function ComMySqlMem() { var key_buffer_size = parseInt($("input[name='key_buffer_size']").val()); var query_cache_size = parseInt($("input[name='query_cache_size']").val()); var tmp_table_size = parseInt($("input[name='tmp_table_size']").val()); var innodb_buffer_pool_size = parseInt($("input[name='innodb_buffer_pool_size']").val()); var innodb_additional_mem_pool_size = parseInt($("input[name='innodb_additional_mem_pool_size']").val()); var innodb_log_buffer_size = parseInt($("input[name='innodb_log_buffer_size']").val()); var sort_buffer_size = $("input[name='sort_buffer_size']").val() / 1024; var read_buffer_size = $("input[name='read_buffer_size']").val() / 1024; var read_rnd_buffer_size = $("input[name='read_rnd_buffer_size']").val() / 1024; var join_buffer_size = $("input[name='join_buffer_size']").val() / 1024; var thread_stack = $("input[name='thread_stack']").val() / 1024; var binlog_cache_size = $("input[name='binlog_cache_size']").val() / 1024; var max_connections = $("input[name='max_connections']").val(); var a = key_buffer_size + query_cache_size + tmp_table_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size var b = sort_buffer_size + read_buffer_size + read_rnd_buffer_size + join_buffer_size + thread_stack + binlog_cache_size var memSize = a + max_connections * b $("input[name='memSize']").val(memSize.toFixed(2)); } //数据库存储信置 function changeMySQLDataPath(act) { if (act != undefined) { layer.confirm(lan.soft.mysql_to_msg, { closeBtn: 2, icon: 3 }, function() { var datadir = $("#datadir").val(); var data = 'datadir=' + datadir; var loadT = layer.msg(lan.soft.mysql_to_msg1, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/database?action=SetDataDir', data, function(rdata) { layer.close(loadT) layer.msg(rdata.msg, { icon: rdata.status ? 1 : 5 }); }); }); return; } $.post('/database?action=GetMySQLInfo', '', function(rdata) { var LimitCon = '

\ \ \

'; $(".soft-man-con").html(LimitCon); }); } //MySQL-Slow日志 function mysqlSlowLog() { var loadT = layer.msg(lan.public.the, { icon: 16, time: 0, shade: [0.3, '#000'] }); $.post('/database?action=GetSlowLogs', {}, function(logs) { layer.close(loadT); if (logs.status !== true) { logs.msg = ''; } if (logs.msg == '') logs.msg = '当前没有慢日志.'; var phpCon = ''; $(".soft-man-con").html(phpCon); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; }); } //数据库日志 function mysqlLog(act) { //获取二进制日志相关信息 $.post('/database?action=BinLog', "status=1", function(rdata) { var limitCon = '

\ ' + lan.soft.mysql_log_bin + ' ' + ToSize(rdata.msg) + '\ \

' + lan.soft.mysql_log_err + '

\ \

' $(".soft-man-con").html(limitCon); //获取错误日志 $.post('/database?action=GetErrorLog', "", function(error_body) { if (error_body.status === false) { layer.msg(error_body.msg, { icon: 5 }); error_body = lan.soft.mysql_log_ps1; } if (error_body == "") error_body = lan.soft.mysql_log_ps1; $("#error_log").text(error_body); var ob = document.getElementById('error_log'); ob.scrollTop = ob.scrollHeight; }); }); } //取数据库运行状态 function mysqlRunStatus() { $.post('/database?action=GetRunStatus', "", function(rdata) { var cache_size = ((parseInt(rdata.Qcache_hits) / (parseInt(rdata.Qcache_hits) + parseInt(rdata.Qcache_inserts))) * 100).toFixed(2) + '%'; if (cache_size == 'NaN%') cache_size = 'OFF'; var Con = '
\ \ \ \ \ \ \
' + lan.soft.mysql_status_title1 + '' + getLocalTime(rdata.Run) + '' + lan.soft.mysql_status_title5 + '' + parseInt(rdata.Questions / rdata.Uptime) + '
' + lan.soft.mysql_status_title2 + '' + rdata.Connections + '' + lan.soft.mysql_status_title6 + '' + parseInt((parseInt(rdata.Com_commit) + parseInt(rdata.Com_rollback)) / rdata.Uptime) + '
' + lan.soft.mysql_status_title3 + '' + ToSize(rdata.Bytes_sent) + '' + lan.soft.mysql_status_title7 + '' + rdata.File + '
' + lan.soft.mysql_status_title4 + '' + ToSize(rdata.Bytes_received) + '' + lan.soft.mysql_status_title8 + '' + rdata.Position + '
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
' + lan.soft.mysql_status_title9 + '' + rdata.Threads_running + '/' + rdata.Max_used_connections + '' + lan.soft.mysql_status_ps1 + '
' + lan.soft.mysql_status_title10 + '' + ((1 - rdata.Threads_created / rdata.Connections) * 100).toFixed(2) + '%' + lan.soft.mysql_status_ps2 + '
' + lan.soft.mysql_status_title11 + '' + ((1 - rdata.Key_reads / rdata.Key_read_requests) * 100).toFixed(2) + '%' + lan.soft.mysql_status_ps3 + '
' + lan.soft.mysql_status_title12 + '' + ((1 - rdata.Innodb_buffer_pool_reads / rdata.Innodb_buffer_pool_read_requests) * 100).toFixed(2) + '%' + lan.soft.mysql_status_ps4 + '
' + lan.soft.mysql_status_title13 + '' + cache_size + '' + lan.soft.mysql_status_ps5 + '
' + lan.soft.mysql_status_title14 + '' + ((rdata.Created_tmp_disk_tables / rdata.Created_tmp_tables) * 100).toFixed(2) + '%' + lan.soft.mysql_status_ps6 + '
' + lan.soft.mysql_status_title15 + '' + rdata.Open_tables + '' + lan.soft.mysql_status_ps7 + '
' + lan.soft.mysql_status_title16 + '' + rdata.Select_full_join + '' + lan.soft.mysql_status_ps8 + '
' + lan.soft.mysql_status_title17 + '' + rdata.Select_range_check + '' + lan.soft.mysql_status_ps9 + '
' + lan.soft.mysql_status_title18 + '' + rdata.Sort_merge_passes + '' + lan.soft.mysql_status_ps10 + '
' + lan.soft.mysql_status_title19 + '' + rdata.Table_locks_waited + '' + lan.soft.mysql_status_ps11 + '
' $(".soft-man-con").html(Con); }); } //数据库配置状态 function mysqlStatus() { //获取MySQL配置 $.post('/database?action=GetDbStatus', "", function(rdata) { var key_buffer_size = ToSizeM(rdata.mem.key_buffer_size) var query_cache_size = ToSizeM(rdata.mem.query_cache_size) var tmp_table_size = ToSizeM(rdata.mem.tmp_table_size) var innodb_buffer_pool_size = ToSizeM(rdata.mem.innodb_buffer_pool_size) var innodb_additional_mem_pool_size = ToSizeM(rdata.mem.innodb_additional_mem_pool_size) var innodb_log_buffer_size = ToSizeM(rdata.mem.innodb_log_buffer_size) var sort_buffer_size = ToSizeM(rdata.mem.sort_buffer_size) var read_buffer_size = ToSizeM(rdata.mem.read_buffer_size) var read_rnd_buffer_size = ToSizeM(rdata.mem.read_rnd_buffer_size) var join_buffer_size = ToSizeM(rdata.mem.join_buffer_size) var thread_stack = ToSizeM(rdata.mem.thread_stack) var binlog_cache_size = ToSizeM(rdata.mem.binlog_cache_size) var a = key_buffer_size + query_cache_size + tmp_table_size + innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size var b = sort_buffer_size + read_buffer_size + read_rnd_buffer_size + join_buffer_size + thread_stack + binlog_cache_size var memSize = a + rdata.mem.max_connections * b var memCon = '
\
' + lan.soft.mysql_set_msg + '\ \ ' + lan.soft.mysql_set_maxmem + ': MB\
\

key_buffer_sizeMB, ' + lan.soft.mysql_set_key_buffer_size + '

\

query_cache_sizeMB, ' + lan.soft.mysql_set_query_cache_size + '

\

tmp_table_sizeMB, ' + lan.soft.mysql_set_tmp_table_size + '

\

innodb_buffer_pool_sizeMB, ' + lan.soft.mysql_set_innodb_buffer_pool_size + '

\

innodb_log_buffer_sizeMB, ' + lan.soft.mysql_set_innodb_log_buffer_size + '

\

innodb_additional_mem_pool_sizeMB

\

sort_buffer_sizeKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_sort_buffer_size + '

\

read_buffer_sizeKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_read_buffer_size + '

\

read_rnd_buffer_sizeKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_read_rnd_buffer_size + '

\

join_buffer_sizeKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_join_buffer_size + '

\

thread_stackKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_thread_stack + '

\

binlog_cache_sizeKB * ' + lan.soft.mysql_set_conn + ', ' + lan.soft.mysql_set_binlog_cache_size + '

\

thread_cache_size ' + lan.soft.mysql_set_thread_cache_size + '

\

table_open_cache ' + lan.soft.mysql_set_table_open_cache + '

\

max_connections ' + lan.soft.mysql_set_max_connections + '

\
\
' $(".soft-man-con").html(memCon); $(".conf_p input[name*='size'],.conf_p input[name='max_connections'],.conf_p input[name='thread_stack']").change(function() { ComMySqlMem(); }); $(".conf_p select[name='mysql_set']").change(function() { MySQLMemOpt($(this).val()); ComMySqlMem(); }); }); }