手机版

批量修改Mysql表引擎为InnoDB的方法 - MySQL中文参考手册

2019-09-11 阅读 :

一般批量修改MYSQL中某表的数据库引擎可以利用官方工具mysql_convert_table_format来实现, 这里指的是不使用其他工具仅用shell的方法来实现。(以下例子效果是将数据库shop中所有引擎不为InnoDB的表修改为使用InnoDB引擎)[ 查看表引擎的语句:show create table tableName; ],其实核心关键点是这条语句:

alert table tableName engine=innodb;

下面开始修改:

备份数据库

在命令行下运行得到备份SQL

mysqldump -uroot -p******** shop > shop20160505.sql

在命令行建立一个测试数据库并导入SQL

mysql -uroot -p******** -e 'create database shop_to_innodb charset utf8';mysql -uroot -p******** shop_to_innodb < shop20160505.sql

shell获取需要更换表引擎

mysql -uroot -p******** -e "show table status from shop_to_innodb where Engine <> 'InnoDB' /G"|grep Name|awk '{print "alter table "$2" engine=innodb;";}' > mysql_change_to_innodb.txt

上面的语句在命令行中执行得到 mysql_change_to_innodb.txt 文件(包含了shop_to_innodb库中所有引擎不为InnoDB的改变语句)。

查看导出的修改语句

使用vim命令或者cat命令查看 mysql_change_to_innodb.txt 文件,检查是否为自己要修改的内容。

alter table a engine=innodb;alter table b engine=innodb;alter table category engine=innodb;alter table ecs_account_log engine=innodb;alter table ecs_ad engine=innodb;alter table ecs_ad_custom engine=innodb;alter table ecs_ad_position engine=innodb;alter table ecs_admin_action engine=innodb;alter table ecs_admin_log engine=innodb;alter table ecs_admin_message engine=innodb;alter table ecs_admin_user engine=innodb;alter table ecs_adsense engine=innodb;alter table ecs_affiliate_log engine=innodb;alter table ecs_agency engine=innodb;alter table ecs_area_region engine=innodb;alter table ecs_article engine=innodb;alter table ecs_article_cat engine=innodb;alter table ecs_attribute engine=innodb;alter table ecs_auction_log engine=innodb;alter table ecs_auto_manage engine=innodb;alter table ecs_back_goods engine=innodb;alter table ecs_back_order engine=innodb;alter table ecs_bonus_type engine=innodb;alter table ecs_booking_goods engine=innodb;alter table ecs_brand engine=innodb;alter table ecs_card engine=innodb;alter table ecs_cart engine=innodb;... ...

执行修改语句

如果没用问题我们可以接着执行下面的语句。

mysql -uroot -p******** shop_to_innodb < mysql_change_to_innodb.txt

如果数据库非常大可能要等一段时间


服务器软件 网络工具 网站工具 服务器教程 服务器知识 服务器技术 服务器之家 vps教程 vps是什么

本文标题:批量修改Mysql表引擎为InnoDB的方法 - MySQL中文参考手册 - 服务器教程_服务器技术_服务器知识_vps教程
本文地址:https://www.helloaliyun.com/tutorial/524.html

相关文章

  • CentOS 7 常用命令(系统关机、重启以及登出)

    关机:(系统的关机、重启以及登出 ) # 关闭系统(1)[root@localhost ~]# shutdown -h now # 关闭系统(2)[root@localhost ~]# init 0 # 关闭系统(3)[root@localhost ~]# telinit 0 # 按预定时间关闭系统[root@localhost...

    2019-12-07 服务器教程
  • linux重启命令 reboot与shutdown -r now的区别与联系

    在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的。shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告...

    2019-12-07 服务器教程
  • CentOS 7 如何使用命令重启或关机

    安装GNOME的朋友们首先切换到字符界面。切换到字符界面的方法如下: 先登陆进入系统,进入图形化界面,然后按Ctrl+Alt+F6(笔记本的是Ctrl+Alt+shift+Fn),进入字符界面。关机命令:shutdown或poweroffshutdown:shutdown -h now...

    2019-12-07 服务器教程
  • CentOS 7 正确关机重启的命令方法

    linux主要用于服务器领域,而在服务器上执行一项服务是永无止境的,除非遇到特殊情况,否则不会关机。和Windows不同,在linux系统下,很多进程是在后台执行的。在屏幕背后,可能有很多人同时在工作。如果直接按下电源的按钮,其他...

    2019-12-07 服务器教程
  • CentOS下的yum upgrade和yum update区别,没事别乱用!

    说明:生产环境对软件版本和内核版本要求非常精确,别没事有事随便的进行yum update操作!!!!!!!!!yum update: 升级所有包同时也升级软件和系统内核yum upgrade:只升级所有包,不升级软件和系统内核...

    2019-12-07 服务器教程
你可能感兴趣