mysql_convert_table_format 批量修改表引擎

时间:2021-12-24 10:54:56
[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)