首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定MySQL是否已使用跳过授予表启动。

问确定MySQL是否已使用跳过授予表启动。
EN

Stack Overflow用户
提问于 2017-06-07 15:19:32
回答 1查看 237关注 0票数 3

有没有一种方法可以判断mysql是否是在MySQL中使用跳过授权表启动的?我在show variables里什么都找不到

我想在启动sql脚本中添加一个保护程序,以防止UDF函数在不能创建的情况下被创建(例如,码头启动正在运行安装程序,等等)

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-07 16:47:42

似乎没有一个变量来决定这一点。

以下存储过程可以给您一些想法:

代码语言:javascript
复制
DELIMITER //

DROP PROCEDURE IF EXISTS `_`.`skip_grant_tables`//

CREATE PROCEDURE `_`.`skip_grant_tables`(OUT `skip_grant` BOOL)
BEGIN
  DECLARE `skip_grant_text` TEXT;
  DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
  BEGIN
    GET DIAGNOSTICS CONDITION 1 `skip_grant_text` = MESSAGE_TEXT;
  END;
  SET `skip_grant` := 0;
  GRANT SELECT ON *.* TO ''@'';
  IF (`skip_grant_text` REGEXP '--skip-grant-tables option') THEN
    SET `skip_grant` := 1;
  END IF;
END//

DELIMITER ;

mysql> CALL `_`.`skip_grant_tables`(@`skip_grant_tables?`);
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @`skip_grant_tables?`;
+-----------------------+
| @`skip_grant_tables?` |
+-----------------------+
|                     1 |
+-----------------------+
1 row in set (0.00 sec)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44416719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档