当服务器崩溃了,没法正常开启,而又要恢复数据时候,是不可能知道一个表的结构的。但是仍然可以访问磁盘,可以从数据文件中恢复一些数据的。
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数据库读权限。
文章转载来自:trustauth.cn