mysql check table脚本

#! /bin/bash

host_name=localhost

#user_name=root

#user_pass=123456

database=mysql

tables=$(mysql --login-path=root -h$host_name $database -A -Bse "show tables")

for table in $tables

do

check_full_status=$(mysql --login-path=root -h$host_name $database -A -Bse "check table $table")

check_status=`echo $check_full_status | awk {'print $4'} | sed s/[[:space:]]//g`

if [ "$check_status" != "OK" ]

then

echo $check_full_status

fi

done

注:mysql --login-path=root这个登录方式是使用了mysql_config_editor set工具


PS1:

Linux下把MySQL的查询结果保存的文件中去

执行
mysql -h 主机 -u 用户 -p密码 -P端口 -D库 -Bse “select house_id,type from 表名 where account_id=123;”  > /tmp/a.txt

PS2:

MySQL在切换库时报使用-A参数

在使用user dbname 时会出现速度慢的现象,并报提示:
mysql> use dbname
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
然后就卡在这里。
原因是当我们打开数据库,即use dbname时,要预读数据库信息。由于数据库太大,即数据库中表非常多,所以如果预读数据库信息,将非常慢,所以就卡住了,如果数据库中表非常少,将不会出现问题。
解决办法mysql已经有所提示:
我们进入mysql 时,没有使用-A参数:
mysql> mysql -hhostname -uusername -ppassword -Pport
当使用-A参数时,就不预读数据库信息,速度就会快起来:
mysql> mysql -hhostname -uusername -ppassword -Pport -A

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值