shell查mysql_通过shell检查mysql主机和数据库,生成html报表的脚本
该脚本主要用于大致诊断MYSQL主机和数据库配置及性能收集,脚本部分功能展示如下:
实现该上述展示功能的shell脚本如下:file_output='os_mysql_summary.html'
td_str=''
th_str=''
myuser="root"
mypasswd="password"
myip="192.168.11.101"
myport="3307"
mysql_cmd="mysql -u${myuser} -p${mypasswd} -h${myip} -P${myport} --protocol=tcp --silent"
create_html_css(){
echo -e "
body {font:12px Courier New,Helvetica,sansserif; color:black; background:White;}
table,tr,td {font:12px Courier New,Helvetica,sansserif; color:Black; background:#FFFFCC; padding:0px 0px 0px 0px; margin:0px 0px 0px 0px;}
th {font:bold 12px Courier New,Helvetica,sansserif; color:White; background:#0033FF; padding:0px 0px 0px 0px;}
h1 {font:bold 12pt Courier New,Helvetica,sansserif; color:Black; padding:0px 0px 0px 0px;}
}
create_html_head(){
echo -e "
$1
"
}
create_table_head1(){
echo -e "
}
create_table_head2(){
echo -e "
}
create_td(){
td_str=`echo $1 | awk 'BEGIN{FS="|"}''{i=1; while(i<=NF) {print "
"$i"";i++}}'`
}
create_th(){
th_str=`echo $1|awk 'BEGIN{FS="|"}''{i=1; while(i<=NF) {print "
"$i"";i++}}'`
}
create_tr1(){
create_td "$1"
echo -e "
$td_str
" >> $file_output
}
create_tr2(){
create_th "$1"
echo -e "
$th_str
" >> $file_output
}
create_tr3(){
echo -e "
`cat $1`
" >> $file_output
}
create_table_end(){
echo -e "
"
}
create_html_end(){
echo -e ""
}
NAME_VAL_LEN=12
name_val () {
printf "%+*s | %s\n" "${NAME_VAL_LEN}" "$1" "$2"
}
get_virtual () {
local file="/var/log/dmesg"
if grep -qi -e "vmware" -e "vmxnet" -e 'paravirtualized kernel on vmi' "${file}"; then
echo "VMWare";
elif grep -qi -e 'paravirtualized kernel on xen' -e 'Xen virtual console' "${file}"; then
echo "Xen";
elif grep -qi "qemu" "${file}"; then
echo "QEmu";
elif grep -qi 'paravirtualized kernel on KVM' "${file}"; then
echo "KVM";
elif grep -q "VBOX" "${file}"; then
echo "VirtualBox";
elif grep -qi 'hd.: Virtual .., ATA.*drive' "${file}"; then
echo "Microsoft VirtualPC";
else
echo "Physical Machine"
fi
}
get_physics(){
name_val "Date" "`date -u +'%F %T UTC'` (local TZ: `date +'%Z %z'`)"
name_val "Hostname" "`uname -n`"
name_val "Uptime" "`uptime`"
name_val "System" "`dmidecode -s "system-manufacturer" "system-product-name" "system-version" "chassis-type"`"
name_val "Service_num" "`dmidecode -s "system-serial-number"`"
name_val "Platform" "`uname -s`"
name_val "Release" "`cat /etc/{oracle,redhat,SuSE,centos}-release 2>/dev/null|sort -ru|head -n1`"
name_val "Kernel" "`uname -r`"
name_val "Architecture" "CPU=`lscpu|grep Architecture|awk -F: '{print $2}'|sed 's/^[[:space:]]*//g'`;OS=`getconf LONG_BIT`-bit"
name_val "Threading" "`getconf GNU_LIBPTHREAD_VERSION`"
name_val "SELinux" "`getenforce`"
name_val "Virtualized" "`get_virtual`"
}
get_cpuinfo () {
file="/proc/cpuinfo"
virtual=`grep -c ^processor "${file}"`
physical=`grep 'physical id' "${file}" | sort -u | wc -l`
cores=`grep 'cpu cores' "${file}" | head -n 1 | cut -d: -f2`
model=`grep "model name" "${file}"|sort -u|awk -F: '{print $2}'`
speed=`grep -i "cpu MHz" "${file}"|sort -u|awk -F: '{print $2}'`
cache=`grep -i "cache size" "${file}"|sort -u|awk -F: '{print $2}'`
SysCPUIdle=`vmstat | sed -n '$ p' | awk '{print $15}'`
[ "${physical}" = "0" ] && physical="${virtual}"
[ -z "${cores}" ] && cores=0
cores=$((${cores} * ${physical}));
htt=""
if [ ${cores} -gt 0 -a $cores -lt $virtual ]; then htt=yes; else htt=no; fi
name_val "Processors" "physical = ${physical}, cores = ${cores}, virtual = ${virtual}, hyperthreading = ${htt}"
name_val "Models" "${physical}*${model}"
name_val "Speeds" "${virtual}*${speed}"
name_val "Caches" "${virtual}*${cache}"
name_val "CPUIdle(%)" "${SysCPUIdle}%"
}
get_meminfo(){
echo "Locator |Size |Speed |Form Factor | Type | Type Detail" >>/tmp/tmpmem3_h1_`date +%y%m%d`.txt
dmidecode| grep -v "Memory Device Mapped Address"|grep -A12 -w "Memory Device" \
|egrep "Locator:|Size:|Speed:|Form Factor:|Type:|Type Detail:" \
|awk -F: '/Size|Type|Form.Factor|Type.Detail|^[\t ]+Locator/{printf("|%s", $2)}/^[\t ]+Speed/{print "|" $2}' \
|grep -v "No Module Installed" \
|awk -F"|" '{print $4,"|", $2,"|", $7,"|", $3,"|", $5,"|", $6}' >>/tmp/tmpmem3_t1_`date +%y%m%d`.txt
free -glht >>/tmp/tmpmem2_`date +%y%m%d`.txt
memtotal=`vmstat -s | head -1 | awk '{print $1}'`
avm=`vmstat -s| sed -n '3p' | awk '{print $1}'`
name_val "Mem_used_rate(%)" "`echo "100*${avm}/${memtotal}" | bc`%" >>/tmp/tmpmem1_`date +%y%m%d`.txt
}
get_diskinfo(){
echo "Filesystem |Type |Size | Used | Avail | Use% | Mounted on | Opts" >>/tmp/tmpdisk_h1_`date +%y%m%d`.txt
df -ThP|grep -v tmpfs|sed '1d'|sort >/tmp/tmpdf1_`date +%y%m%d`.txt
mount -l|awk '{print $1,$6}'|grep ^/|sort >/tmp/tmpdf2_`date +%y%m%d`.txt
join /tmp/tmpdf1_`date +%y%m%d`.txt /tmp/tmpdf2_`date +%y%m%d`.txt\
|awk '{print $1,"|", $2,"|", $3,"|", $4,"|", $5,"|", $6,"|", $7,"|", $8}' >>/tmp/tmpdisk_t1_`date +%y%m%d`.txt
lsblk >>/tmp/tmpdisk1_`date +%y%m%d`.txt
for disk in `ls -l /sys/block|awk '{print $9}'|sed '/^$/d'|grep -v fd`
do
echo "${disk}" `cat /sys/block/${disk}/queue/scheduler` >>/tmp/tmpdisk2_`date +%y%m%d`.txt
done
pvs >>/tmp/tmpdisk3_`date +%y%m%d`.txt
echo "====================== ===== ===== ===== ===== ===== ========== =======" >>/tmp/tmpdisk3_`date +%y%m%d`.txt
vgs >>/tmp/tmpdisk3_`date +%y%m%d`.txt
echo "====================== ===== ===== ===== ===== ===== ========== =======" >>/tmp/tmpdisk3_`date +%y%m%d`.txt
lvs >>/tmp/tmpdisk3_`date +%y%m%d`.txt
}
get_netinfo(){
echo "interface | status | ipadds | mtu | Speed | Duplex" >>/tmp/tmpnet_h1_`date +%y%m%d`.txt
for ipstr in `ifconfig -a|grep ": flags"|awk '{print $1}'|sed 's/.$//'`
do
ipadds=`ifconfig ${ipstr}|grep -w inet|awk '{print $2}'`
mtu=`ifconfig ${ipstr}|grep mtu|awk '{print $NF}'`
speed=`ethtool ${ipstr}|grep Speed|awk -F: '{print $2}'`
duplex=`ethtool ${ipstr}|grep Duplex|awk -F: '{print $2}'`
echo "${ipstr}" "up" "${ipadds}" "${mtu}" "${speed}" "${duplex}"\
|awk '{print $1,"|", $2,"|", $3,"|", $4,"|", $5,"|", $6}' >>/tmp/tmpnet1_`date +%y%m%d`.txt
done
}
get_topproc(){
#os load
echo "os load 1" >>/tmp/tmpload_`date +%y%m%d`.txt
sar -q 1 5 >>/tmp/tmpload_`date +%y%m%d`.txt
echo "os load 2" >>/tmp/tmpload_`date +%y%m%d`.txt
sar -b 1 5 >>/tmp/tmpload_`date +%y%m%d`.txt
echo "os load 3" >>/tmp/tmpload_`date +%y%m%d`.txt
vmstat 1 5 >>/tmp/tmpload_`date +%y%m%d`.txt
#top cpu
mpstat 1 5 >>/tmp/tmptopcpu_`date +%y%m%d`.txt
echo "TOP10 CPU Resource Process" >>/tmp/tmptopcpu_`date +%y%m%d`.txt
ps aux|head -1 >>/tmp/tmptopcpu_`date +%y%m%d`.txt
ps aux|grep -v PID|sort -rn -k +3|head >>/tmp/tmptopcpu_`date +%y%m%d`.txt
#top -bn1 -o "%CPU"|sed -n '/PID/,17p'
#top mem
echo "TOP10 MEM Resource Process" >>/tmp/tmptopmem_`date +%y%m%d`.txt
ps aux|head -1 >>/tmp/tmptopmem_`date +%y%m%d`.txt
ps aux|grep -v PID|sort -rn -k +4|head >>/tmp/tmptopmem_`date +%y%m%d`.txt
#top -bn1 -o "%MEM"|sed -n '/PID/,17p'
#top i/o
iostat -cdmx 2 3 >>/tmp/tmptopio_`date +%y%m%d`.txt
#iotop -botq -n 3 -d 2
}
my_base_info(){
${mysql_cmd} -e "select now(),current_user(),version()\G"
${mysql_cmd} -e "show global variables like 'autocommit';"|grep -i ^auto|awk '{print $1,":",$2}'
${mysql_cmd} -e "show global variables"|egrep -w "port|character_set_server|datadir|log_error|log_bin_basename|tx_isolation|binlog_format"|awk '{print $1,":",$2}'
}
my_stat_info(){
${mysql_cmd} -e status >>/tmp/tmpmy_stat_`date +%y%m%d`.txt
}
my_connip_info(){
echo "ipadds|conn_status|count" >>/tmp/tmpmy_connip_h1_`date +%y%m%d`.txt
netstat -an|grep ${myport}|grep -vi LISTEN|awk '{print $5,$6}'|sed 's/::ffff://g'|sed 's/:[0-9]*//g'|sed '1d'|sort|uniq -c|awk '{print $2,"|",$3,"|",$1}' >>/tmp/tmpmy_connip_t1_`date +%y%m%d`.txt
}
my_param_info(){
echo "Variable_name|Value" >>/tmp/tmpmy_param_h1_`date +%y%m%d`.txt
${mysql_cmd} -e "show global variables"|egrep -w "innodb_buffer_pool_size|innodb_file_per_table|innodb_flush_log_at_trx_commit|innodb_io_capacity|\
innodb_lock_wait_timeout|innodb_data_home_dir|innodb_log_file_size|innodb_log_files_in_group|log_slave_updates|long_query_time|lower_case_table_names|\
max_connections|max_connect_errors|max_user_connections|query_cache_size|query_cache_type |server_id|slow_query_log|slow_query_log_file|innodb_temp_data_file_path|\
sql_mode|gtid_mode|enforce_gtid_consistency|expire_logs_days|sync_binlog|open_files_limit|myisam_sort_buffer_size|myisam_max_sort_file_size"\
|awk '{print $1,"|",$2}' >>/tmp/tmpmy_param_t1_`date +%y%m%d`.txt
}
my_segm1_info(){
${mysql_cmd} -H -e "select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024/1024,2),' GB') as data_size,\
concat(truncate(sum(index_length)/1024/1024/1024,2),'GB') as index_size\
from information_schema.tables group by TABLE_SCHEMA order by data_length desc;"
}
my_segm2_info(){
${mysql_cmd} -H -e "select table_schema,table_name,table_rows,concat(truncate(data_length/1024/1024/1024,2),' GB') as data_size,\
concat(truncate(index_length/1024/1024/1024,2),' GB') as index_size from information_schema.tables order by data_length desc limit 10;"
}
my_segm3_info(){
${mysql_cmd} -H -e "select table_name,table_rows,concat(round(data_length/1024/1024, 2), 'MB') as size,data_free \
from information_schema.tables where data_free>0 order by data_length desc;"
}
my_obj1_info(){
${mysql_cmd} -H -e "select table_schema as db,table_type as object_type,count(*) as cnt from information_schema.tables group by table_schema,table_type union all\
select routine_schema as db,routine_type as object_type,count(*) as cnt from information_schema.routines group by routine_schema,routine_type;"
}
my_obj2_info(){
${mysql_cmd} -H -e "select table_schema,engine,count(*) as cnt from information_schema.tables group by table_schema,engine;"
}
my_obj3_info(){
${mysql_cmd} -H -e "select table_schema,table_name from information_schema.tables where table_schema not in ('mysql','information_schema','performance_schema','sys') and table_name not in (\
select table_name from information_schema.table_constraints t join information_schema.key_column_usage k using (\
constraint_name,table_schema,table_name) where t.constraint_type = 'PRIMARY KEY' and table_schema not in ('mysql','information_schema','performance_schema','sys'));"
}
my_lock_info(){
${mysql_cmd} -H -e "SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query,\
b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query,\
bl.lock_id blocking_lock_id, bl.lock_mode blocking_lock_mode, bl.lock_type blocking_lock_type,\
bl.lock_table blocking_lock_table, bl.lock_index blocking_lock_index,\
rl.lock_id waiting_lock_id, rl.lock_mode waiting_lock_mode, rl.lock_type waiting_lock_type,\
rl.lock_table waiting_lock_table, rl.lock_index waiting_lock_index\
FROM information_schema.INNODB_LOCK_WAITS w\
INNER JOIN information_schema.INNODB_TRX b ON b.trx_id = w.blocking_trx_id\
INNER JOIN information_schema.INNODB_TRX r ON r.trx_id = w.requesting_trx_id\
INNER JOIN information_schema.INNODB_LOCKS bl ON bl.lock_id = w.blocking_lock_id\
INNER JOIN information_schema.INNODB_LOCKS rl ON rl.lock_id = w.requested_lock_id\G"
}
my_innodb_info(){
${mysql_cmd} -e "show engine innodb status\G"
}
my_user_info(){
${mysql_cmd} -e "SELECT DISTINCT CONCAT('show grants for ''',user,'''@''',host,''';') AS query FROM mysql.user;" >>/tmp/tmpmy_user_t_`date +%y%m%d`.txt
while read line
do
echo "=================================================================" >>/tmp/tmpmy_user_`date +%y%m%d`.txt
echo "$line" >>/tmp/tmpmy_user_`date +%y%m%d`.txt
${mysql_cmd} -e "$line" >>/tmp/tmpmy_user_`date +%y%m%d`.txt
done
}
create_html(){
rm -rf $file_output
touch $file_output
create_html_css >> $file_output
create_html_head "OS Basic Summary" >> $file_output
create_table_head1 >> $file_output
get_physics >>/tmp/tmpos_summ_`date +%y%m%d`.txt
while read line
do
create_tr1 "$line"
done
create_table_end >> $file_output
create_html_head "CPU Info Summary" >> $file_output
create_table_head1 >> $file_output
get_cpuinfo >>/tmp/tmp_cpuinfo_`date +%y%m%d`.txt
while read line
do
create_tr1 "$line"
done
create_table_end >> $file_output
create_html_head "MEM Info Summary" >> $file_output
create_table_head1 >> $file_output
get_meminfo
while read line
do
create_tr1 "$line"
done
create_table_end >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmpmem2_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_table_head1 >> $file_output
while read line
do
create_tr2 "$line"
done
while read line
do
create_tr1 "$line"
done
create_table_end >> $file_output
create_html_head "Disk Info Summary" >> $file_output
create_table_head1 >> $file_output
get_diskinfo
while read line
do
create_tr2 "$line"
done
while read line
do
create_tr1 "$line"
done
create_table_end >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmpdisk1_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmpdisk2_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmpdisk3_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "Network Info Summary" >> $file_output
create_table_head1 >> $file_output
get_netinfo
while read line
do
create_tr2 "$line"
done
while read line
do
create_tr1 "$line"
done
create_table_end >> $file_output
create_html_head "OS Load Summary" >> $file_output
create_table_head1 >> $file_output
get_topproc
create_tr3 "/tmp/tmpload_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "TOP CPU Summary" >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmptopcpu_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "TOP MEM Summary" >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmptopmem_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "TOP IO Summary" >> $file_output
create_table_head1 >> $file_output
create_tr3 "/tmp/tmptopio_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "Basic Database Information" >> $file_output
create_table_head1 >> $file_output
my_base_info >>/tmp/tmpmy_base_`date +%y%m%d`.txt
sed -i -e '1d' -e 's/:/|/g' /tmp/tmpmy_base_`date +%y%m%d`.txt
while read line
do
create_tr1 "$line"
done
create_table_end >> $file_output
create_html_head "Running Status of Database" >> $file_output
create_table_head1 >> $file_output
my_stat_info
create_tr3 "/tmp/tmpmy_stat_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "IP Connection Statistics" >> $file_output
create_table_head1 >> $file_output
my_connip_info
while read line
do
create_tr2 "$line"
done
while read line
do
create_tr1 "$line"
done
create_table_end >> $file_output
create_html_head "Important Parameters" >> $file_output
create_table_head1 >> $file_output
my_param_info
while read line
do
create_tr2 "$line"
done
while read line
do
create_tr1 "$line"
done
create_table_end >> $file_output
create_html_head "Size of each database" >> $file_output
my_segm1_info >> $file_output
create_html_head "TOP10 Space Table" >> $file_output
my_segm2_info >> $file_output
create_html_head "High Water Level Meter" >> $file_output
my_segm3_info >> $file_output
create_html_head "Object type statistics" >> $file_output
my_obj1_info >> $file_output
create_html_head "Storage Engine Number Statistics" >> $file_output
my_obj2_info >> $file_output
create_html_head "Tables without primary keys" >> $file_output
my_obj3_info >> $file_output
create_html_head "Lock information" >> $file_output
my_lock_info >> $file_output
create_html_head "Innodb Status Information" >> $file_output
create_table_head1 >> $file_output
my_innodb_info >>/tmp/tmpmy_innodb_`date +%y%m%d`.txt
create_tr3 "/tmp/tmpmy_innodb_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "User Authorization Information" >> $file_output
create_table_head1 >> $file_output
my_user_info
create_tr3 "/tmp/tmpmy_user_`date +%y%m%d`.txt"
create_table_end >> $file_output
create_html_head "Slow SQL statistics" >> $file_output
create_html_end >> $file_output
sed -i 's/BORDER=1/width="68%" border="1" bordercolor="#000000" cellspacing="0px" style="border-collapse:collapse"/g' $file_output
rm -rf /tmp/tmp*_`date +%y%m%d`.txt
}
# This script must be executed as root
RUID=`id|awk -F\( '{print $1}'|awk -F\= '{print $2}'`
# #OR# RUID=`id | cut -d\( -f1 | cut -d\= -f2` #OR#ROOT_UID=0
if [ ${RUID} != "0" ];then
echo"This script must be executed as root"
exit 1
fi
PLATFORM=`uname`
if [ ${PLATFORM} = "HP-UX" ] ; then
echo "This script does not support HP-UX platform for the time being"
exit 1
elif [ ${PLATFORM} = "SunOS" ] ; then
echo "This script does not support SunOS platform for the time being"
exit 1
elif [ ${PLATFORM} = "AIX" ] ; then
echo "This script does not support AIX platform for the time being"
exit 1
elif [ ${PLATFORM} = "Linux" ] ; then
echo -e "
###########################################################################################
# #
#Make sure that the following parameters at the beginning of the script are correct. #
#myuser="root" (Database Account) #
#mypasswd="password" (Database password) #
#myip="192.168.11.101" (Database native IP) #
#myport="3307" (Database port) #
# Otherwise, the script cannot be executed properly. #
# #
###########################################################################################
"
#read -p "The database connection information is configured correctly. Please execute[yes or y]:" SELECT
#printf '\n'
#if [ $SELECT == "yes" -o $SELECT == "y" ]; then
create_html
#else
# exit 1
#fi
fi
shell查mysql_通过shell检查mysql主机和数据库,生成html报表的脚本相关推荐
- 【数据平台】同一mysql主机不同数据库建复制表
场景:mysql服务器同一台,要从 a 数据库中把表 t 复制到数据库 b 中. 进入数据库b,执行: 语句: create table t like a.t; INSERT t SELECT * F ...
- employees mysql_「employees」mysql示例employees数据库 - seo实验室
employees 供练习sql使用.mysql同样提供了employees数据库,但并未随数据库一起安装,其下载链接也极其隐蔽,可能导致许多人没注意到. 下载地址:https://launchpad ...
- shell判端mysql数据库是否存在_Shell脚本检测和检查mysql数据库是否存在坏表
shell脚本检测和检查mysql数据库是否存在坏表 此脚本的主要用途是检测mysql服务器上所有的数据库或者单独数据库中的坏表,适用于RHEL/Centos系列 #!/bin/bash #此脚本的主 ...
- centos pureftpd mysql_使用PureFTPd和MySQL的虚拟主机(包括配额和带宽管理)在CentOS 6.2上...
使用PureFTPd和MySQL虚拟主机(包括配额和带宽管理)在CentOS 6.2上 本文档介绍如何安装使用MySQL数据库而不是真实系统用户的虚拟用户的PureFTPd服务器. 这是更好的性能,并 ...
- shell命令卸载mysql_centos8中的MySQL卸载和安装
centos8中的MySQL卸载和安装 前言 前几天在自己的服务器上安装了一个NDB集群[而且还没有成功] 放弃治疗后用一台没有mysql的服务器实现了单机版本的集群. 本来以为这事到这就结束了,结果 ...
- Spark入门(六)Spark SQL shell启动方式(元数据存储在mysql)
一.hive配置文件 在spak/conf目录添加hive-site.xml配置,设置mysql作为元数据存储的数据库 <?xml version="1.0" encodin ...
- centos shell mysql数据库备份_CentOS6.5下通过Shell创建、备份、还原MySQL数据库
CentOS6.5下通过Shell创建.备份.还原MySQL数据库 创建数据库: mysql -uroot -p123456 -e "CREATE DATABASE IF NOT EXIST ...
- mysql 反弹shell_反弹shell升级成交互式shell
实验环境: A : kali 虚拟机 B: centos7.5 虚拟机 1. A 机 kali 虚拟机 设置监听 端口 root@kali64:~# nc -lvvp 9001 # 端口随便定义,没被 ...
- 查看mysql主机名命令_MYSQL常用查命令
MYSQL常用查命令 mysql> select version(); 查看MySQL的版本号 mysql> select current_date(); 查看 ...
最新文章
- 微软发布Azure Cosmos DB产品以及新的物联网解决方案
- CodeForces 1131G. Most Dangerous Shark
- MATLAB教程(1) MATLAB 基础知识(2)
- Celery实现定时任务crontab
- Android Hello World 实例【TODO】
- 阿里编码规约扫描eclipse插件安装使用
- java迷宫类编程题_第十届蓝桥杯省赛java类B组 试题 E:迷宫 (动态规划之回溯法)...
- 重磅!苹果正式开源iOS内核源码!
- 用友畅捷通T+漏洞学习——DownloadProxy.aspx 任意文件读取漏洞
- MIUI 12稳定版系统中的开发者选项限制解除
- 数模更新篇-3-因子分析模型
- vue-自定义组件之组件的继承
- ARM处理器开发详解(一)
- 数据产品经理该懂的python技术
- 华为鸿蒙亮利剑,华为亮利剑,超级主镜头+鸿蒙OS,所有期许或将如愿以偿
- developerWorks 中国Java technology文档库Spring 系列
- html css齿轮滚动特效,CSS_纯CSS3实现滚动的齿轮动画效果,纯CSS写的齿轮效果。支持chrome - phpStudy...
- 解决Win10图片打开方式没有“Windows照片查看器”问题
- JAVA版本号的问题——Java版本号与Jdk版本
- 103 THREE.JS 实现局部纹理刷新