检查mysql数据库是否存在坏表
1个回答
展开全部
[代码] [Shell/批处理]代码#!/bin/bash #此脚本的主要用途是检测mysql服务器上所有的db或者单独db中的坏表 #变量说明 pass mysql账户口令 name mysql账号名称 data_path mysql目录路径 directory_list 目录列表 file_list文件列表 db_name 数据库名称 repair_count单库中待修复的表总数 #变量说明 repair_count_all所有库中待修复的表总数 mysql_version mysql版本 _file_name 数据表名称 echo -e "此脚本的主要用途是检测mysql服务器上所有的数据库或者单独数据库中的坏表\n\n" pass=123456 name=root read -p "输入mysql存储路径: " choose data_path=$choose unset choose read -p "请输入mysql命令路径: " mysql_version #标准输入、标准输出、标准错误输出的文件标示符 由 0、1、2标识 read -p "请选择是检查服务器上所有数据库还是指定的数据库 1:检查全部数据库 2:只检查指定数据库: " choose if [ $choose == 1 ]; then cd $data_path for directory_list in $(ls) do if [ -d $directory_list ];then if [ "mysql" != "${directory_list}" -a "test" != "${directory_list}" ];then cd ${directory_list} echo "当前检查数据库为:"${directory_list} for file_list in $(ls *.frm) do _file_name=${file_list%.frm} echo -e "\n" >> /tmp/check_table_all.log ${mysql_version} -h 127.0.0.1 -u${name} -p${pass} -e "check table "${directory_list}.${_file_name} 2>&1 >> /tmp/check_table_all.log done cd .. fi fi done cat /tmp/check_table_all.log | grep "Table is marked as crashed" > /tmp/check_table_repair.log repair_count_all=` awk 'END{print NR}' /tmp/check_table_repair.log ` echo -e "所有数据库用有${repair_count_all}张表需要修复!" more /tmp/check_table_repair.log else read -p "请输入要检查的数据库名称: " db_name cd ${data_path}/${db_name} for file_list in $(ls *.frm) do _file_name=${file_list%.frm} echo -e "\n" >> /tmp/check_${db_name}.log ${mysql_version} -h 127.0.0.1 -u${name} -p${pass} -e "check table "${db_name}.$_file_name 2>&1 >> /tmp/check_${db_name}.log done cat /tmp/check_${db_name}.log | grep "Table is marked as crashed" > /tmp/check_${db_name}_Repair.log repair_count=`awk 'END{print NR}' /tmp/check_${db_name}_Repair.log` echo -e "${db_name}中共有${repair_count}个表需要修复!\n " more /tmp/check_${db_name}_Repair.log fi
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
今至电子科技有限公司
2024-08-23 广告
2024-08-23 广告
数据库备份是确保数据安全与业务连续性的关键环节。我们上海今至电子科技有限公司高度重视数据保护,定期执行全面的数据库备份策略。这包括使用先进工具和技术,对关键业务数据进行自动化备份,并存储在安全可靠的外部存储介质或云端。通过定期验证备份的完整...
点击进入详情页
本回答由今至电子科技有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询