mysql表引擎更改_更改mysql表引擎(shell)

news/2024/7/24 7:21:42 标签: mysql表引擎更改

一、基础环境

1、版本

cat /etc/redhat-release

CentOS release 6.6 (Final)

2、内核

uname -r

2.6.32-504.el6.x86_64

3、ip(eth0)

10.1.10.23

二、shell脚本函数说明

redirectlog           #记录日志用的

checkengine           #检查innodb是否支持及查看默认引擎

generatedb            #导出需要的DB库

generatetable         #导出需要更改引擎表到某个文件

alterengine           #将某个文件中的表进行引擎更改

三、cat myisamtoinnodb.sh

#!/bin/bash

#--------------------------------------------------

#Author:jimmygong

#Email:jimmygong@taomee.com

#FileName:myisamtoinnodb.sh

#Function:

#Version:1.0

#Created:2015-08-07

#--------------------------------------------------

currdate=$(date +%Y%m%d)

dates=`date "+%s"`

sleeptime=2

dbuser="test"

dbpass="123456"

dbport="3306"

dbip=$(ifconfig eth0|awk '/inet addr:/'|awk -F: '{print $2}'|awk -F" " '{print $1}')

logdir="/opt/myisamtoinnodb"

exclude="mysql information_schema"

function mysqlcmd ()

{

comm=$1

mysql -u"$dbuser" -p"$dbpass" -h"$dbip" -P"$dbport" -sNe "$comm"

}

function redirectlog ()

{

logfile=$logdir/${currdate}_${dbip}_log

mkdir -p $logdir

exec 1>$logfile

exec 2>$logfile

}

function checkengine ()

{

defaultengine=`mysqlcmd 'show engines'|grep -i default|awk '{print $1,$2}'`

echo "$defaultengine"

innodb=`mysqlcmd 'show engines'|grep -i innodb|grep -i yes`

if [[ ! -z "$innodb" ]]

then

echo "innodb enabled"

fi

}

function generatedb ()

{

i=0

dblist=`mysqlcmd 'show databases'`

for db in $dblist

do

rv=`echo $exclude|grep -w -i $db`

if [[ -n "$rv" ]]

then

continue;

fi

dbname[i]=$db

let i++

done

}

function generatetable ()

{

i=0

for db in ${dbname[@]}

do

alltable=`mysqlcmd "use $db;show tables"|wc -l`

for ((j=1;j<=$alltable;j++))

do

table=`mysqlcmd "use $db;show tables;"|sed -n $j"p"`

for tablename in $table

do

engine=`mysqlcmd "use $db;show create table $tablename;"|grep -w -i "engine=myisam"`

if [[ $? = 0 ]]

then

echo $db $table >> $logdir/table.$dates

fi

done

done

done

}

function alterengine ()

{

[[ ! -e $logdir/table.$dates ]] && exit 1

while read db table

do

mysqlcmd "alter table $db.$table engine=innodb;"

sleep $sleeptime

echo $db $table $(date +%F:%T)

done 

}

redirectlog

checkengine

generatedb

generatetable

alterengine

exit 0


http://www.niftyadmin.cn/n/648741.html

相关文章

Rust雪山怎么防冷_注意啦!据说今年是冷冬,冻害怎么预防?(附天气预报)

原标题&#xff1a;注意啦&#xff01;据说今年是冷冬,冻害怎么预防&#xff1f;(附天气预报)天气早知道先说今天的天气&#xff01;今天天空颜色略淡&#xff0c;全省晴转多云&#xff0c;因为寒冷的北风下午才能赶到&#xff0c;所以今天最大的变化是早晨暖和&#xff01;而今…

nuxt如何避免跨域请求_如何处理前后端的跨域请求

现实开发中常会遇到前后端跨域请求的问题&#xff0c;如&#xff1a;前端的端口是http://127.0.0.1:8848&#xff0c;后端的端口是http://127.0.0.1:8080&#xff0c;这种情况下前端直接访问后端的接口无法成功的&#xff0c;此处有两种解决此问题的方法&#xff0c;仅供参考。…

华为平板能运行python吗_华为的这款机器不仅可以当笔记本电脑,还能当平板使用...

我们是“大番茄一键重装系统”团队&#xff0c;有不少人都会通过公众号【大番茄黑科技】向我们表示&#xff0c;希望我们可以推介几款电脑产品&#xff0c;以便入手。那么&#xff0c;今天我们要说的机器&#xff0c;是华为的MateBook&#xff0c;华为在2016年推出的二合一笔记…

ORA错误码大全

ORACLE错误一览表&#xff0c;方便大家查询&#xff01; ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出最大进程数 () ORA-00021: 会话附属于其它某些进程&#xff1b;无法转换…

mysql主从 副本集_mongoDB的两个特性:主从复制、副本集

一、主从复制 1.主从复制是一个简单的数据库同步备份的集群技术. 1.1在数据库集群中要明确的知道谁是主服务器,主服务器只有一台. 1.2从服务器要知道自己的数据源也就是对于的主服务是谁. 1.3--master用来确定主服务器,--slave 和 –source 来控制从服务器 1.一、主从复制1.主从…

安卓mysql数据库连接工具类_自定义JDBC工具类 连接MySQL数据库

需要用到的jar包&#xff1a;mysql-connector-java-5.1.43-bin.jar1.把连接数据库需要的信息&#xff0c;都保存在一个文件中&#xff0c;这个文件是一个properties文件drivercom.mysql.jdbc.Driverurljdbc:mysql://localhost:3306/javaee1707?useSSLtrueuserrootpassword1234…

设置起始位置打印网页内容

首先在网页中加入以下代码 <script> function preview(oper) { if (oper < 10) { bdhtmlwindow.document.body.innerHTML;//获取当前页的html代码 sprnstr"<!--startprint"oper"-->";//设置打印开始区域 eprnstr&quo…

java视频直播_java视频直播、聊天室、弹幕、多端适配

【实例简介】JAVA直播后台源码【实例截图】【核心代码】package com.hushangjie.service;import org.springframework.context.ApplicationEvent;import org.springframework.context.ApplicationListener;import org.springframework.messaging.simp.broker.SimpleBrokerMessa…