当服务器崩溃了,没法正常开启,而又要恢复数据时候,是不可能知道一个表的结构的。但是仍然可以访问磁盘,可以从数据文件中恢复一些数据的。
mysqlfrm 工具就可用于发现一个表的结构,并生成的CREATE TABLE相关的SQL语句。
实例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
shell> sudo env PYTHONPATH=$PYTHONPATH mysqlfrm —basedir=/usr/local/mysql \
—port=3333 —user=<user> /usr/local/mysql/data/welford_kindle/books.frm
# Spawning server with –user=<user>.
# Starting the spawned server on port 3333 … done.
# Reading .frm files
#
# Reading the books.frm file.
#
# CREATE statement for /usr/local/mysql/data/kindle/books.frm:
#
CREATE TABLE `welford_kindle`.`books` (
`ISBN` char(32) NOT NULL PRIMARY KEY,
`title` char(128) DEFAULT NULL,
`purchase_date` date DEFAULT NULL,
`cost` float(10,2) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
#…done.
|
在这个例子中,我们使用了三个必要的参数:basedir、port、user。这三个参数的含义可以去看看前面的文章,都有介绍的。
权限
权限完全取决于你如何使用mysqlfrm 。如果是用来读取.frm文件需以root用户来执行。如果要连接服务器,需要对mysql数据库读权限。
文章转载来自:ttlsa.com