进入到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
#输出修改