IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration MySQL Discussion :

Problème variable sql_mode ne veux pas changer


Sujet :

Administration MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 24
    Points : 19
    Points
    19
    Par défaut Problème variable sql_mode ne veux pas changer
    Bonjour à tous,

    Je doit migrer une base de donné PGSQL qui autorise les types DATE et DATETIME NULL vers MySQL qui les autorise aussi mais en enlevant les modes NO_ZERO_DATE,NO_ZERO_IN_DATE et aussi (je croit) STRICT_TRANS_TAB qui sont des modes activés par defaut.

    Je me connecte avec l'utilisateur root.

    Voici la procédure que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    SELECT @@sql_mode;
    // il me renvoie les modes par défault de mysql.
     
    SET @@sql_mode = '';
    SET GLOBAL sql_mode = '';
    SET SESSION sql_mode = '';
     
    // Pour la variable de tous ses modes (jusque la tout fonctionne à merveille)
     
    SET @@sql_mode='ALLOW_INVALID_DATES, ERROR_FOR_DIVISION_BY_ZERO, TRADITIONAL, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION'
    SET GLOBAL sql_mode = 'ALLOW_INVALID_DATES, ERROR_FOR_DIVISION_BY_ZERO, TRADITIONAL, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION';
    SET SESSION sql_mode = 'ALLOW_INVALID_DATES, ERROR_FOR_DIVISION_BY_ZERO, TRADITIONAL, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION';
     
    // Mise à jour de la variable sql_mode pour garder que les modes que j ai besoin.
     
    // Puis quand je vérifie
    SELECT @@sql_mode;
    SELECT @@GLOBAL.sql_mode;
    SELECT @@SESSION.sql_mode;
     
    // Les trois requètes me renvoie le même résultat soit:
    // ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION,  TRADITIONAL, NO_AUTO_CREATE_USER
    // qui sont les modes actifs par default.
    En gros, a chaque fois mysql me remet la valeur par défaut de sql_mode.

    Dans le fichier de conf de mysqld , j'ai aussi retiré la variable sql_mode.

    J'ai pas mal cherché, j'ai vue qu'il y a plein der tutos dessus ainsi que la doc officielle de MySQL mais rien à faire.
    J'ai l'impression de faire les bonnes manipes, mais il y a surement quelque chose que je n'est pas compris ou oublier.

    Un petit coup de pouce ferai le plus grand bien.
    Merci d'avance.

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2016
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2016
    Messages : 24
    Points : 19
    Points
    19
    Par défaut
    J'ai essayé une autre façon de changé sql_mod (qui ne fonctionne pas non plus).

    Donc j'ai essayé en changeant manuellement la valeur dans la table performance_schema.global_variables
    Mais MySQL me dit que l'utilisateur 'root'@'localhost' n'a pas les doits:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UPDATE command denied to user 'root'@'localhost' for table 'global_variables'
    Voici comment j'ai procédé.
    Tout d'abord, pour vérifier les droits de mon utilisateur root:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    libertalia@labuse:~$ mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 2
    Server version: 5.7.23 MySQL Community Server (GPL)
     
    Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.
     
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
     
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
     
    mysql> show grant;
    ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'grant' at line 1
    mysql> show grants;
    +---------------------------------------------------------------------+
    | Grants for root@localhost                                           |
    +---------------------------------------------------------------------+
    | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION |
    | GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION        |
    +---------------------------------------------------------------------+
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    mysql> use performance_schema
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
     
    Database changed
    mysql> describe global_variables;
    +----------------+---------------+------+-----+---------+-------+
    | Field          | Type          | Null | Key | Default | Extra |
    +----------------+---------------+------+-----+---------+-------+
    | VARIABLE_NAME  | varchar(64)   | NO   |     | NULL    |       |
    | VARIABLE_VALUE | varchar(1024) | YES  |     | NULL    |       |
    +----------------+---------------+------+-----+---------+-------+
    2 rows in set (0,01 sec)
     
    mysql> SELECT * FROM global_variables WHERE VARIABLE_NAME = 'sql_mode';
    +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
    | VARIABLE_NAME | VARIABLE_VALUE                                                                                                                            |
    +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
    | sql_mode      | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
    +---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0,01 sec)
     
    mysql> UPDATE global_variables SET VARIABLE_VALUE = 'ONLY_FULL_GROUP_BY,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' WHERE VARIABLE_NAME = 'sql_mode';
    ERROR 1142 (42000): UPDATE command denied to user 'root'@'localhost' for table 'global_variables'
    MySQL protège-t-il la base performance_schema?
    Mon utilisateur 'root' a-t-il les bon droits ? Devrai-t-il pas avoir le PRIVILEGES SUPER au lieu de ALL PRIVILEGES?
    C'est peut-être aussi pour ça que je n'arrive pas à changer la valeur de la variable grâce à la méthode conventionnelle, c'est à dire SET GLOBAL sql_mod = '' ?

    Les détails en plus vous aiderons peut-être à m'aider?
    Merci d'avance.

Discussions similaires

  1. Font Name qui ne veux pas changer
    Par developpeur82 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/03/2013, 22h41
  2. Problème variable parfois assignée, parfois pas
    Par Ragnarock dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 31/01/2012, 17h51
  3. Réponses: 13
    Dernier message: 10/11/2007, 01h03
  4. Réponses: 1
    Dernier message: 03/08/2007, 10h09
  5. hauteur qui ne veux pas changer
    Par gloglo dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/03/2007, 13h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo