Cloud DB-Mysql: privilège super user
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
question

Cloud DB-Mysql: privilège super user

Par
SalmaT
Créé le 2020-01-28 16:53:06 (edited on 2024-09-04 11:23:27) dans Bases de données

Pour que je puisse utiliser la base de données MY_SQL, j'ai une requête de configuration qui nécessite le privilège de superuser qui n'est pas fournie par OVH.
voici ma requête:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
voici la réponse du serveur:
17:39:56 SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY','')) Error Code: 1227. Access denied; you need (at least one of) the SUPER privilege(s) for this operation 0.078 sec

-->Si j'ai bien compris, il me faut le login et mot de passe de super user pour que je puisse exécuter cette commande.
Est ce que Quelqu'un peut m'aider?


3 réponses ( Latest reply on 2020-05-26 20:24:34 Par
MikaelD1
)

cloudDB est une solution mutualisée, je doute que Ovh réponde à ton attente

Bonjour,

J'ai exactement le même problème pour modifier cette variable ONLY_FULL_GROUP_BY.
J'ai ouvert un ticket il y a maintenant 6 jours... et aucun retour !
Je n'ai pas de contournement possible pour ce problème de variable. On doit mettre en prod demain pour des inscriptions dans une école et je ne peut pas filtrer mes résultats...
Je veux bien que je ne bénéficie que d'un support de base, mais je suis censé avoir une réponse en moins de 8 heures ! Je ne vais pas payer 50€HT/mois pour le support Premium alors que l'abonnement à l'offre Cloud database me coûte 35€ pour 6 mois !
Je ne sais pas quoi faire...
BG

Bonjour @BernardG25,

Avant tout, petit rappel sur ce qu'est le SQL mode ONLY_FULL_GROUP_BY et pourquoi il existe.

**Contexte**

Le plus gros avantage de MySQL par rapport à un autre SGBD, et ce pourquoi il est aussi répendu, c'est qu'il est permissif. Insérer une date "0"? Pas de problème. C'est un avantage parceque c'est le SGBD qui embête le moins de gens. Il permets beaucoup de choses. Le plus gros inconvénient de MySQL, c'est… qu'il est permissif =D OK il ne râle pas quand tu mets une date "0", mais ça n'a pas de sens.

**Les SQL modes**

Au fil des versions de MySQL, la décision a été prise par MySQL (Oracle) d'arrêter de supporter certains de ces comportements incohérents. Comme cette décision est "cassante" et risque donc d'embêter quelques personnes, MySQL a mis en place une solution temporaire de dernier recours pour supporter du code legacy: les SQL modes.

Par exemple, pour "faire passer" la date à "0" dont je parle plus haut, il faut activer le SQL mode "NO_ZERO_DATE", pour revenir au comportement des vieux MySQL sur ce sujet.

D'autres SQL modes sont… étonnants. Notamment le ERROR_FOR_DIVISION_BY_ZERO (une division par 0? pas de problème!) ou bien le… ONLY_FULL_GROUP_BY.

**ONLY_FULL_GROUP_BY**

Petit extrait de la doc à propos de ce SQL mode: "In this case, the server is free to choose any value from each group, so unless they are the same, the values chosen are nondeterministic, which is probably not what you want."

En d'autres termes, activer ONLY_FULL_GROUP_BY, c'est comme cocher l'option «permettre l'inconsistence et les réponses aléatoires». Cette incohérence est encore plus vraie depuis MySQL 5.7 "because GROUP BY processing has become more sophisticated".

Bref, oui, le SQL mode n'est pas permis sur ton instance, mais même si ça l'était, je te conseillerais personnellement de ne surtout pas l'utiliser.

Pour mon information, quel code te demande de mettre ce mode? Est-ce un développement spécifique? As-tu essayé de poursuivre l'installation sans exécuter cette requête?

Mikaël

Les réponses sont actuellement désactivées pour cette question.