-----------------------------
因为mysqlfrm是mysql-utilities东西一部分,那末我们装置mysql-utilities即可,下载好对应的源码包,举行编译装置。
shell> tar -xvzf mysql-utilities-1.6.4.tar.gz shell> cd mysql-utilities-1.6.4 shell> python ./setup.py build shell> python ./setup.py install
装置完成后,在响应的python实行目录下,就可以mysqlfrm等实行文件了。
2、mysqlfrm相干参数引见
-------------------------------
--basedir :如 --basedir=/usr/local/percona-5.6.21 --server : 如 --server=user:password@192.168.1.100:3306 --diagnostic : 开启按字节形式来恢复frm构造 --user :启动MySQL用户,通过为mysql
3、mysqlfrm运用
-------------------------
运用--basedir形式恢复:
[ 16:35:29-root@br3cy1sw:~ ]# mysqlfrm --basedir=/usr/local/percona-5.6.21/ /root/t1.frm --port=3434 --user=mysql --diagnostic # WARNING The --port option is not used in the --diagnostic mode. # WARNING: The --user option is only used for the default mode. # WARNING: Cannot generate character set or collation names without the --server option. # CAUTION: The diagnostic mode is a best-effort parse of the .frm file. As such, it may not identify all of the components of the table correctly. This is especially true for damaged files. It will also not read the default values for the columns and the resulting statement may not be syntactically correct. # Reading .frm file for /root/t1.frm: # The .frm file is a TABLE. # CREATE TABLE Statement: CREATE TABLE `root`.`t1` ( `a` int(11) NOT NULL, `b` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL, `d` varchar(600) DEFAULT NULL, PRIMARY KEY `PRIMARY` (`a`), KEY `idx_t1_bc` (`b`,`c`) ) ENGINE=InnoDB; #...done.
运用--server体式格局恢复:
[ 16:35:10-root@br3cy1sw:~ ]#mysqlfrm --server=user:password@192.168.1.100:3306 /root/t1.frm --port=3434 --user=mysql --diagnostic WARNING: Using a password on the command line interface can be insecure. # WARNING The --port option is not used in the --diagnostic mode. # WARNING: The --user option is only used for the default mode. # Source on 192.168.1.100: ... connected. # CAUTION: The diagnostic mode is a best-effort parse of the .frm file. As such, it may not identify all of the components of the table correctly. This is especially true for damaged files. It will also not read the default values for the columns and the resulting statement may not be syntactically correct. # Reading .frm file for /root/t1.frm: # The .frm file is a TABLE. # CREATE TABLE Statement: CREATE TABLE `root`.`t1` ( `a` int(11) NOT NULL, `b` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL, `d` varchar(200) COLLATE `utf8_general_ci` DEFAULT NULL, PRIMARY KEY `PRIMARY` (`a`), KEY `idx_t1_bc` (`b`,`c`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; #...done.
注意到没有,运用--basedir恢复出来的varchar竟然是--server形式的3倍;这应该是mysqlfrm在运用basedir形式时,没法举行字符编码校验而至引发的。
再次看了下--server的文件:(重点看标红加粗的笔墨),发起:能用--server形式时,只管运用--server同时保证供应mysqld环境与原生产环境的一致。
--server=server Connection information for a server. Use this option or --basedir for the default mode. If provided with the diagnostic mode, the storage engine and character set information are validated against this server.
以上就是运用mysqlfrm恢复frm表构造的要领 的细致内容,更多请关注ki4网别的相干文章!