zoukankan      html  css  js  c++  java
  • (转)MySQL管理工具MySQL Utilities — mysqlfrm (26)

    原文:http://www.ttlsa.com/mysql/mysql-utilities-mysqlfrm/

    mysqlfrm 是一个恢复性质的工具,用来读取.frm文件并从该文件中找到表定义数据生成CREATE语句。在大多数情况下,生成的CREATE语句用于在另一个服务器上创建表或进行诊断等。然而,有些功能是不保存在.frm文件中的,因此这些功能将被忽略的。如:

    • 外键约束
    • 自增长序列

    mysqlfrm 有两种操作模式。默认的模式是再生个实例,使用--basedir选项或指定--server选项来连接到已经安装的实例。这种过程不会改变原始的.frm文件。该模式也需要指定--port选项来给再生的实例使用,该端口不能与现有的实例冲突。在读取.frm文件后,再生的实例将被关闭,所有的临时文件将被删除的。

    另一个模式是诊断模式,需要指定 --diagnostic 选项。byte-by-byte读取.frm文件 尽可能多的恢复信息。该模式有更多的局限性,不能校验字符集。

    当使用默认模式无法读取文件或者该服务器上没有安装MySQL实例就使用诊断模式。

    需要指定.frm文件的路径,也可以指定一个目录,该目录下的所有.frm文件将被读取。

    可以指定数据库名称用来产生CREATE语句,格式如下:database_name:table_name.frm,如:oltp:t1.frm。可选的数据库名称也可以使用路径,如 /home/me/oltp:t1.frm,将使用oltp作为数据库名。如果省略了数据库名称和路径,最后的一个文件夹将作为数据库名称的。如 /home/me/data1/t1.frm,data1将作为数据库名。如果不想最后的文件夹作为数据库名,只需指定冒号,如 /home/me/data1/:t1.frm,在这种情况下,CREATE语句将忽略数据库。

    选项

     注意

    1. 某些引擎表在默认模式下不可读取的。如PARTITION, PERFORMANCE_SCHEMA,必需在诊断模式下可读。

    2. 要在创建语句中改变存储引擎,可使用--new-storage-engine 选项。如果有指定该选项,同时必须指定--frmdir选项,该工具生成新的.frm文件,前缀为new_,并保存在--frmdir目录下。

    3. 关掉所有信息除了CREATE 语句和警告或错误信息,使用--quiet选项。

    4. 使用--show-stats 选项统计每个.frm文件信息。

    5. 使用--user 选项指定再生的实例以哪个权限运行。

    6. 如果再生的实例超过10秒启动,需调大--start-timeout 选项参数。

    实例

    看看执行过程反过头去看看上面所说是否正确。

    /data/mydata3306/ttlsa_com/data.frm 数据库名为ttlsa_com;

    /data/mydata3306/mysql/bbs_ttlsa_com:user.frm 数据库名为bbs_ttlsa_com。

    诊断模式读取目录中的所有的FRM文件:

    权限

    权限取决于如何使用mysqlfrm。统一用root账号就好了。

    如果要连接服务器,需要对mysql数据库读权限。

    技术链接
  • 相关阅读:
    字段username没有默认值查询(设计数据库一定要养成好习惯,不是主键最好设置为可以为空)
    计算机中常见的一些概念理解
    Git常用的操作
    docker里面运行jenkins详解
    什么是持续交付
    持续集成概念理解
    Jenkins pipeline概念理解
    linux无法启动httpd服务问题
    linux关闭防火墙
    模板【Binary Indexed Tree树状数组】
  • 原文地址:https://www.cnblogs.com/liujiacai/p/14743282.html
Copyright © 2011-2022 走看看