shell脚本批量修改mysql表引擎

本文介绍如何通过Shell脚本批量修改MySQL数据库中的表引擎,首先获取所有表名,然后遍历并检查每个表的当前引擎,如果是MyISAM,则将其转换为InnoDB。脚本包括从数据库中获取表名、读取表引擎信息和执行ALTER TABLE语句的步骤。
摘要由CSDN通过智能技术生成

进入到mysql的数据目录,例如/data

#进入到data目录,如果不进入打绝对路径会带着/data/表名

cd /data

#列出所有表的数据结构文件,然后去掉.frm,追加到文件中就是所有的表名了

ls *.frm |awk -F'.frm' '{print $1}' > /root/all_tables.txt
 

当然,你也可以用另一种方式,直接从数据库复制粘贴

/usr/local/mysql/bin/mysql -uroot -p'password' -e "use dbname;show tables" > all_tables.txt

 

#声明是shell脚本

#!/bin/bash

#列出所有表名
a=`cat /root/all_tables.txt`

#循环每一个表名
for i in $a

#开始循环
do

#获取当前表的引擎名称
engine_name=`/usr/local/webserver/mysql/bin/mysql -uroot -p'password' -e "use phpcmsdata;show create table $i;"|grep 'ENGINE'|awk -F'=' '{print $2}'|awk '{print $1}'`

#输出当前表的引擎名称
echo $engine_name

#判断,如果当前表的引擎名称是MyISAM
if [[ $engine_name == 'MyISAM' ]];then

#输出修改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值