您的位置:首页 > 数据库 > MySQL

mysql_convert_table_format 批量修改表引擎

2016-06-30 17:43 441 查看
[root@server-mysql bin]# mysql_convert_table_format --help

Conversion of a MySQL tables to other storage engines

Usage: /usr/bin/mysql_convert_table_format database [table[ table ...]]

1.If no tables has been specifed, all tables in the database will be converted.
2.You can also use wildcards, ie "my%"

The following options are available:

-f, --force
Continue even if there is some error.

-?, --help
Shows this help

-e, --engine=ENGINE
Converts tables to the given storage engine (Default: MYISAM)

-h, --host=HOST
Host name where the database server is located. (Default: localhost)

-p, --password=PASSWORD
Password for the current user.

-P, --port=PORT
TCP/IP port to connect to if host is not "localhost".

-S, --socket=SOCKET
Socket to connect with.

-u, --user=USER
User name to log into the SQL server.

-v, --verbose
This is a test specific option that is only used when debugging a test.
Print more information about what is going on.

-V, --version
Shows the version of this program.


convert.sh

#!/bin/bash
/usr/local/mysql56/bin

echo 'Enter Host Name:'
read HOSTNAME
echo 'Enter User Name:'
read USERNAME
echo 'Enter Password:'
read PASSWD
echo 'Enter Socket Path:'
read SOCKETPATH
echo 'Enter Database Name:'
read DBNAME
echo 'Enter Table Name:'
read TBNAME
echo 'Enter Table Engine:'
read TBTYPE

/usr/local/mysql56/bin/mysql_convert_table_format --host=$HOSTNAME --user=$USERNAME --password=$PASSWD --socket=$SOCKETPATH --type=$TBTYPE $DBNAME $TBNAME --verbose


mysql> select concat(table_schema,'.',table_name) as table_name ,engine from information_schema.tables where table_schema = 'test';
+------------+--------+
| table_name | engine |
+------------+--------+
| test.t | InnoDB |
| test.t1 | InnoDB |
| test.t3 | InnoDB |
| test.t4 | InnoDB |
| test.t5 | InnoDB |
+------------+--------+
5 rows in set (0.01 sec)

[root@server-mysql ~]# ./convert.sh
./convert.sh: line 3: /usr/local/mysql56/bin: is a directory
Enter Host Name:
localhost
Enter User Name:
root
Enter Password:
Aa@12345
Enter Socket Path:
/tmp/mysql.sock5
Enter Database Name:
test
Enter Table Name:

Enter Table Engine:
MYISAM
Warning: /usr/local/mysql56/bin/mysql_convert_table_format is deprecated and will be removed in a future version.
Converting tables:
converting t
converting t1
converting t3
converting t4
converting t5


mysql> select concat(table_schema,'.',table_name) as table_name ,engine from information_schema.tables where table_schema = 'test';
+------------+--------+
| table_name | engine |
+------------+--------+
| test.t     | MyISAM |
| test.t1    | MyISAM |
| test.t3    | MyISAM |
| test.t4    | MyISAM |
| test.t5    | MyISAM |
+------------+--------+
5 rows in set (0.01 sec)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: