The utility performs a best effort approximation of the CREATE
statement when run in diagnostic mode. As such, if you read a
.frm file that uses character sets or
collations other than the default and you do not use a
--server option to connect to
a server to read the character sets, this can result in
miscalculated column sizes.
For example, suppose your default character set is latin1 which uses 1 byte per character. Lets also suppose you are attempting to read a .frm file that uses a character set that uses 3 bytes per character. Furthermore, we have no server to connect. In this case, the column sizes may be off by a factor of 3. A case in point would be a field such as col_a char(3) would appear in the output of the mysqlfrm utility as col_a char(9).
To mitigate risks such as this and to produce the most
accurate CREATE statement in diagnostic mode, always use the