J'essaye d'exécuter la requête dans mysql.
SET GLOBAL log_bin_trust_function_creators =1;
Erreur:
Requête SQL:
SET GLOBAL log_bin_trust_function_creators = 1
MySQL a déclaré:
# 1227 - Accès refusé; vous avez besoin du privilège SUPER pour cette opération
Je veux savoir que comment attribuer des privilèges SUPER
à une base de données
Vous pouvez ajouter un super privilège en utilisant phpmyadmin
:
Sélectionnez PHPMYADMIN> privilèges> Modifier un utilisateur> sous l'onglet Administrateur. Cliquez sur SUPER. > Aller
Si vous voulez le faire avec Console
, procédez comme suit:
mysql> GRANT SUPER ON *.* TO user@'localhost' IDENTIFIED BY 'password';
Après avoir exécuté le code ci-dessus, terminez-le avec:
mysql> FLUSH PRIVILEGES;
Vous devriez faire dans. car SUPER n’est pas le privilège qui s’applique à une seule base de données, c’est global.
Vous pouvez voir les privilèges ici.
Ensuite, vous pouvez modifier l'utilisateur
Dans Sequel Pro, accédez à la fenêtre Comptes d'utilisateurs. Notez que tout programme d’administration MySQL peut être remplacé par Sequel Pro.
Ajoutez les comptes et privilèges suivants:
GRANT SUPER ON *.* TO 'user'@'%' IDENTIFIED BY PASSWORD
Sur Centos 5, j'entendais toutes sortes d'erreurs en essayant de modifier certaines valeurs de variable depuis le shell MySQL, après m'être connecté avec les identifiants uid et pw (avec accès root) appropriés. L'erreur que je devenais était quelque chose comme ça:
mysql> -- Set some variable value, for example
mysql> SET GLOBAL general_log='ON';
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER privilege(s) for this operation
Dans un moment d'extrême sérendipité j'ai fait ce qui suit:
OS-Shell> Sudo mysql # no DB uid, no DB pw
Veuillez noter que je n'ai pas fourni l'ID et le mot de passe de la base de données
mysql> show variables;
mysql> -- edit the variable of interest to the desired value, for example
mysql> SET GLOBAL general_log='ON';
Ça a marché comme sur des roulettes
seule la requête phpmyadmin est imprimée après avoir accordé le super utilisateur. espérons aider quelqu'un avec console:
ON $. $ TO-> $ = * ne s'affiche pas lorsque vous mettez deux points avec un point entre eux.
REVOKE TOUS LES PRIVILEGES SUR. FROM 'usr' @ 'localhost'; DONNER TOUT PRIVILÈGES SUR. TO 'usr' @ 'localhost' N'EXIGEZ AUCUNE OPTION DE SUBVENTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
et l'inverse, suppression de la subvention:
REVOKE TOUS LES PRIVILEGES SUR. FROM 'dos007' @ 'localhost'; ANNULER LA SUBVENTION OPTION SUR. FROM 'dos007' @ 'localhost'; Accordez tous les privilèges sur. TO 'dos007' @ 'localhost' N'UTILISEZ NONE WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
coché sur vagabond devrait fonctionner dans n'importe quel mysql