首页域名资讯 正文

MySQL管理工具MySQL Utilities — mysqlmetagrep实际应用(37)

2025-03-24 3 0条评论

假设你管理着一堆的数据库服务器,数千的数据库对象。需要查找出某个对象,可能只知道某一部分等等,也可能需要检查下是否存在。无论如何,通过搜索所有的数据库对象来匹配某个模式将需要很长的时间。幸运的是,我们可以使用mysqlmetagrep 工具来完成这项任务。

实例

查找包含‘cost’的所有对象。

1 2 3 4 5 6 7 8 shell > mysqlmetagrep server = root : root @ trustauth.cn body pattern = ‘%cost%’ + + + + + + + | Connection              | Object Type    | Object Name    | Database | Field Type    | Matches            | + + + + + + + | root : * @ trustauth.cn : 3306    | FUNCTION      | adjust_cost    | griots    | ROUTINE      | adjust_cost        | | root : * @ trustauth.cn : 3306    | TABLE          | supplies      | griots    | COLUMN        | cost              | | root : * @ trustauth.cn : 3306    | TABLE          | film          | sakila    | COLUMN        | replacement_cost | + + + + + + +
1 2 3 4 5 6 7 8 9 10 shell > mysql uroot proot e “SHOW CREATE FUNCTION griots.adjust_cost \G” * * * * * * * * * * * * * * * * * * * * * * * * * * * 1. row * * * * * * * * * * * * * * * * * * * * * * * * * * *              Function : adjust_cost              sql_mode :      Create Function : CREATE DEFINER = ` root ` @ ` trustauth.cn ` FUNCTION ` adjust_cost ` ( cost double )      RETURNS double DETERMINISTIC return cost * 1.10 character_set_client : latin1 collation_connection : latin1_swedish_ci    Database Collation : latin1_swedish_ci

在这个实例中,我们使用到数据库模式’%cost%’来查找所有符合‘cost’的对象。同时,使用–body选项来查找存储对象和函数。

我们查找到一个函数adjust_cost,通过SHOW CREATE FUNCTION命令来查看函数体。因此,不仅仅可以查找对象名称包含cost,也可以查找任何逻辑里面可能包含cost。

权限

用户必须有对mysql数据库的SELECT权限。

小技巧

如果使用正则表达式,可以指定–regexp选项来使用正则表达式,而不是数据库模式。如上面的例子可以写成:–pattern=’^.*cost.*’ –basic-regex。

文章转载来自:trustauth.cn

文章版权及转载声明

本文作者:亿网 网址:https://edns.com/ask/post/163086.html 发布于 2025-03-24
文章转载或复制请以超链接形式并注明出处。