2017-06-07 4 views
3

Gibt es eine Möglichkeit zu sagen, ob MySQL mit skip-grant-tables in mysql gestartet wurde? Ich kann nichts finden in show variablesErmitteln, ob MySQL mit skip-grant-tables gestartet wurde

Ich möchte eine Wache zu einem Start-SQL-Skript hinzufügen, um zu verhindern UDF-Funktionen versuchen, erstellt werden, wenn sie nicht möglich sind (z. B. der Docker-Startup Setup ausgeführt wird, etc)

Dank

Antwort

2

Es scheint nicht, eine Variable zu existieren, zu bestimmen.

Die folgende gespeicherte Prozedur können Sie ein paar Ideen:

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) 
+0

Clever ... Sorry für die späten akzeptieren - ich habe im Urlaub gewesen. – Stephen

+0

@Stephen: Ich hoffe, Sie haben Ihren Urlaub genossen! – wchiquito

Verwandte Themen