有没有一种方法可以判断mysql是否是在MySQL中使用跳过授权表启动的?我在show variables里什么都找不到
我想在启动sql脚本中添加一个保护程序,以防止UDF函数在不能创建的情况下被创建(例如,码头启动正在运行安装程序,等等)
谢谢
发布于 2017-06-07 16:47:42
似乎没有一个变量来决定这一点。
以下存储过程可以给您一些想法:
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)https://stackoverflow.com/questions/44416719
复制相似问题