mysql 批量修改数据库存储引擎_批量转换MySQL数据库表的存储引擎的方法

mysql_convert_table_format工具可以批量转换MYSQL数据库表的存储引擎,如果是RPM安装一般在/usr/bin 或者/usr/sbin下。本文我们主要介绍利用mysql_convert_table_format工具将MySQL数据库表的存储引擎批量转换为MYISAM引擎的方法,接下来就让我们来一起了解这一部分内容。

首先执行下面的代码:

[root@test ~]# mysql_convert_table_format

/usr/sbin/mysql_convert_table_format version 1.1

Conversion of a MySQL tables to other table types.

转换MYSQL表成其它表的类型,如:INNODB ,MEMORY等。

Usage: /usr/sbin/mysql_convert_table_format database [tables]。

用法: /usr/sbin/mysql_convert_table_format 数据库名 表名,也就是可以单独指定全库,或者全表,类似mysqldump。

If no tables has been specifed, all tables in the database will be converted。

如果没指定表,那么数据库中的所有表将会被转换。

The following options are available:

--force

Continue even if there is some error.

如果碰到错误强制进行转换。

--help or --Information

Shows this help

查看帮助。

--host='host name'(Default localhost)

Host name where the database server is located.

转换的主机名,默认为本地主机(localhost)。

--password='password'

Password for the current user.

当前进行转换用户的密码。

--port=port

TCP/IP port to connect to if host is not "localhost".

如果不是以localhost 连接的话,请指定端口。

--socket='/path/to/socket'

Socket to connect with.

SOCKET文件存在的位置(SOCKET是进程间通信所用到的)。

--ENGINE='table-type'

Converts tables to the given table type (Default: myisam)

MySQL 3.23 supports at least the BDB, ISAM and MYISAM types.

存储引擎,默认为MYISAM,这里要注意,我测试的时候,要修改这个PERL脚本,如果你把库转成INNODB,就在脚本里把MYISAM写成INNODB。

--user='user_name'

User name to log into the SQL server.

连接的用户名。

--verbose

This is a test specific option that is only used when debugging a test.

Print more information about what is going on.

--version

Shows the version of this program.

查看工具的版本信息。

用法:我是用本机进行测试,OS:RHEL5.2 MYSQL:5.1.30

mysql_convert_table_format mo --user='root' --password='mysql' --force --socket='/tmp/mysql.sock'

把数据库mo中的所有表转换成MYISAM引擎。

查看数据文件目录。

[root@test ~]# ll /opt/mysql-data/mo/

总计 960

-rw-rw---- 1 mysql mysql 12914 03-02 22:55 action_log.frm

-rw-rw---- 1 mysql mysql 8900 03-02 22:55 alarm_log.frm

-rw-rw---- 1 mysql mysql 8898 03-02 22:55 check_data.frm

-rw-rw---- 1 mysql mysql 8836 03-02 22:55 check_data_log.frm

-rw-rw---- 1 mysql mysql 1708 03-02 22:55 check_data_log.par

-rw-rw---- 1 mysql mysql 8898 03-02 22:55 check_data_tmp.frm

-rw-rw---- 1 mysql mysql 9096 03-02 22:55 checkpoint.frm

…………………………………….

只有表的结构文件,看看表空间有没有增长。

[root@test ~]# ll -lh /opt/mysql-data/ib*

-rw-rw---- 1 mysql mysql 34M 03-02 23:18 /opt/mysql-data/ibdata1

-rw-rw---- 1 mysql mysql 5.0M 03-02 23:18 /opt/mysql-data/ib_logfile0

-rw-rw---- 1 mysql mysql 5.0M 12-22 20:19 /opt/mysql-data/ib_logfile1

默认没有用INNODB的是10M,现在我的变成30M了。

修改工具

把MYISAM修改成INNODB

Vi /usr/local/mysql/bin/mysql_convert_table_format

把第26行$opt_type="innodb" 改成$opt_type="myisam"

用工具进行库的转换

[root@test ~]# mysql_convert_table_format mo--user='root'--password='mysql'--socket='/tmp/mysql.sock'

[root@test ~]#

成功完成,再看看数据文件:

总计 2568

-rw-rw---- 1 mysql mysql 12914 03-02 23:18 action_log.frm

-rw-rw---- 1 mysql mysql     0 03-02 23:18 action_log.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 action_log.MYI

-rw-rw---- 1 mysql mysql 8900 03-02 23:18 alarm_log.frm

-rw-rw---- 1 mysql mysql     0 03-02 23:18 alarm_log.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 alarm_log.MYI

-rw-rw---- 1 mysql mysql 8898 03-02 23:18 check_data.frm

-rw-rw---- 1 mysql mysql 8836 03-02 23:18 check_data_log.frm

-rw-rw---- 1 mysql mysql 1708 03-02 23:18 check_data_log.par

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p0.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p0.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p100.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p100.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p101.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p101.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p102.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p102.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p103.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p103.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p104.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p104.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p105.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p105.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p106.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p106.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p107.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p107.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p108.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p108.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p109.MYD

-rw-rw---- 1 mysql mysql 1024 03-02 23:18 check_data_log#P#p109.MYI

-rw-rw---- 1 mysql mysql     0 03-02 23:18 check_data_log#P#p10.MYD

已经成功转换成MYISAM引擎。

关于使用mysql_convert_table_format工具来批量转换MySQL数据库表的存储引擎的方法就介绍到这里了,希望本次的介绍能够对您有所收获。

【编辑推荐】

【责任编辑:赵鹏 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值