3
是否有办法确定MySQL是否已在mysql中使用skip-grant-tables启动?我找不到任何东西show variables
确定MySQL是否已使用skip-grant-tables启动
我想添加一个警卫到启动sql脚本,以防止UDF函数尝试创建时,他们不能(例如码头启动运行安装程序等)
谢谢
是否有办法确定MySQL是否已在mysql中使用skip-grant-tables启动?我找不到任何东西show variables
确定MySQL是否已使用skip-grant-tables启动
我想添加一个警卫到启动sql脚本,以防止UDF函数尝试创建时,他们不能(例如码头启动运行安装程序等)
谢谢
似乎并不存在一个变量来确定。
下面的存储过程可以给你一些建议:
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)
聪明......对不起已故的接受 - 我一直在休假。 – Stephen
@Stephen:希望你喜欢你的假期! – wchiquito