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 :

Perte d'accès aux tables après mise à jour


Sujet :

Administration MySQL

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 21
    Points
    21
    Par défaut Perte d'accès aux tables après mise à jour
    Bonjour,

    En faisant une màj de ma version de MySQL, j'ai perdu l'accès à mes BDD et à leurs tables. Dans le répertoire Data, j'ai tout ce qu'il me faut.

    Par PHPmyAdmin j'accède à MySQL mais aucune BDD n'apparaît.

    J'ai déjà regarder les forums pour récupérer mes données mais à chaque fois on me parle de fichiers .frm, sauf que j'ai que des fichiers .idb.

    Quelqu'un peut-il m'aider ?

    je suis suis windows 10, apache 2, php7.xx et mySQL 8.0.13 me semble-t-il.


    Merci d'avance.

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut à tous.

    Citation Envoyé par lducrocq
    En faisant une màj de ma version de MySQL, j'ai perdu l'accès à mes BDD et à leurs tables.
    C'est tout à fait normal car ce n'est pas une mise-à-jour mais bien une nouvelle version que vous installez et de ce fait, vous partez d'un SGBDR vierge.

    Vous êtes sous "mySQL 8.0.13".

    Quand je fais un changement de version, je procède ainsi :

    1) dans l'ancienne version, je fais un export table par table.
    Oui, je sais, on peut le faire aussi sur la base, mais c'est quand même mieux si la volumétrie est plus faible.
    Chez moi, j'ai créé un batch windows qui permet de gérer les exports.

    2) installation de la nouvelle version mysql dans ???
    Au fait vous utilisez WampServer ?
    Dans ce cas, le répertoire se nomme "C:/wamp/bin/mysql/mysql8.0.13".

    3) il y a un batch windows à lancer pour créer dans ce nouveau répertoire, le répertoire "/data".
    En fait, c'est une initialisation du nouveau SGBDR.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    
    set MYSQL=mysql8.0.23
    set PATH=.;%WAMPSERVER%\bin\mysql\%MYSQL%\bin;
    
    if exist %WAMPSERVER%\bin\mysql\%MYSQL%\data (rmdir /S /Q %WAMPSERVER%\bin\mysql\%MYSQL%\data)
    
    mysqld.exe  --initialize-insecure  --log-error-verbosity=3  --log-error=f:/Wamp/logs/mysql_error.log
    
    pause
    exit
    L'important est la ligne en rouge.
    Normalement, le répertoire "/data" est créé mais maintenant, il faut initialiser votre SGBDR.

    4) mise-à-jour du compte "root" et de son mot de passe.
    Voici le script sql que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    -- =============================== --
    -- Changer le mot de passe de ROOT --
    -- =============================== --
     
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
    ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'root';
     
    flush privileges;
     
    exit
    Dans ce cas, le compte "root" existe déjà. Je ne fais que m'assurer que j'ai bien le bon mot de passe.

    Voici le batch windows qui va exécuter le script sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
     
    CALL ../Param.cmd
     
    @echo "+------------------------------+"
    @echo "| Privilèges avec mot de passe |"
    @echo "+------------------------------+"
     
    mysql  --host localhost  --user=root  --password=  --force  --verbose  mysql < Droits\Privileges_%TEST%_1.txt
     
    pause
    Il n'y a pas de mot de passe pour le compte "root", la première fois que vous accédez avec la nouvelle installation.
    Ce qui veut dire que si vous mettez un mot de passe, il faudra changer ceci "password=".

    5) ajout des autres comptes.
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    -- ========= --
    -- Nettoyage --
    -- ========= --
     
    DROP USER IF EXISTS 'root'@'::1';
     
    -- ===================== --
    -- Privilège pour 'ROOT' --
    -- ===================== --
     
    DROP   USER  IF EXISTS                                              'root'@'127.0.0.1';
    CREATE USER                                                         'root'@'127.0.0.1'   IDENTIFIED WITH mysql_native_password BY 'root';
    GRANT  ALL PRIVILEGES                 ON            *.* TO          'root'@'127.0.0.1'   WITH GRANT OPTION;
     
    DROP   USER  IF EXISTS                                              'root'@'localhost';
    CREATE USER                                                         'root'@'localhost'   IDENTIFIED WITH mysql_native_password BY 'root';
    GRANT  ALL PRIVILEGES                 ON            *.* TO          'root'@'localhost'   WITH GRANT OPTION;
     
    DROP   USER  IF EXISTS                                              'root'@'phpmyadmin';
    CREATE USER                                                         'root'@'phpmyadmin'  IDENTIFIED WITH mysql_native_password BY 'root';
    GRANT  ALL PRIVILEGES                 ON            *.* TO          'root'@'phpmyadmin'  WITH GRANT OPTION;
     
    -- ====================== --
    -- Privilège pour 'FORUM' --
    -- ====================== --
     
    DROP   USER  IF EXISTS                                             'forum'@'%';
    CREATE USER                                                        'forum'@'%'           IDENTIFIED WITH mysql_native_password BY 'forum';
    GRANT  USAGE                          ON            *.* TO         'forum'@'%';
    GRANT  SELECT, INSERT, UPDATE, DELETE ON      `forum`.* TO         'forum'@'%';
    GRANT  SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO         'forum'@'%';
     
    -- ===================== --
    -- Privilège pour 'TEST' --
    -- ===================== --
     
    DROP   USER  IF EXISTS                                              'test'@'%';
    CREATE USER                                                         'test'@'%'           IDENTIFIED WITH mysql_native_password BY 'test';
    GRANT  USAGE                          ON            *.* TO          'test'@'%';
    GRANT  SELECT, INSERT, UPDATE, DELETE ON       `test`.* TO          'test'@'%';
    GRANT  SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO          'test'@'%';
     
    -- ===================== --
    -- Privilège pour 'BASE' --
    -- ===================== --
     
    DROP   USER  IF EXISTS                                              'base'@'%';
    CREATE USER                                                         'base'@'%'           IDENTIFIED WITH mysql_native_password BY 'base';
    GRANT  USAGE                          ON            *.* TO          'base'@'%';
    GRANT  SELECT, INSERT, UPDATE, DELETE ON       `base`.* TO          'base'@'%';
    GRANT  SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO          'base'@'%';
     
    flush privileges;
     
    exit
    Je n'ai pas tout mis. Ceci est un modèle que vous pouvez utiliser pour votre usage personnel.

    A l'issu de cela, vous avez vos comptes et vos mots de passe dans la version "mysql 8.0".
    Il faut faire attention à la version car la création des comptes est légèrement différent pour les anciennes versions.

    6) et maintenant, vous pouvez effectuer l'import de vos tables, en utilisant phpmyadmin.
    Ne pas oublier aussi de configurer la base "phpmyadmin" afin que phpmyadmin fonctionne dans de bonnes conditions.

    Citation Envoyé par lducrocq
    Par PHPmyAdmin j'accède à MySQL mais aucune BDD n'apparaît.
    Vous accédez bien à la version que vous avez installé, à savoir "mysql8.0.23". Est-ce bien cela ?

    Qu'est-ce que vous entendez par :
    Citation Envoyé par lducrocq
    Dans le répertoire Data, j'ai tout ce qu'il me faut.
    Avez-vous copié le répertoire "/data" de votre ancienne version dans la nouvelle version ?
    En principe, il ne faut pas procéder ainsi mais comme je l'ai indiqué ci-dessus.

    Peut-être que vous avez bien créé votre répertoire "/data", mais il manque les comptes et mot de passe.
    Voire aussi que vous n'avez pas correctement configuré la base "phpmyadmin" dans le nouveau mysql.
    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
    @echo off
    
    CALL ../Param.cmd
    
    @echo "+--------------------------------+"
    @echo "| Création Database 'PhpMyAdmin' |"
    @echo "+--------------------------------+"
    @echo.
    mysql  mysql < PhpMyAdmin\Bas_phpmyadmin.sql
    @echo.
    @echo "+----------------------------------+"
    @echo "| Création des tables 'PhpMyAdmin' |"
    @echo "+----------------------------------+"
    @echo.
    
    if '%PHPMYADMIN%' EQU '3.5.1'  (set rep=examples) else (set rep=sql)
    
    mysql  mysql < F:\Wamp\apps\phpmyadmin%PHPMYADMIN%\%rep%\create_tables.sql
    @echo.
    pause
    C'est la ligne en rouge qui est importante !

    Citation Envoyé par lducrocq
    J'ai déjà regarder les forums pour récupérer mes données mais à chaque fois on me parle de fichiers .frm, sauf que j'ai que des fichiers .idb.
    On s'en fout !

    L'important est de suivre les différentes étapes pour migrer de l'ancienne version mysql vers la nouvelle.
    Rien ne vous empêche de soulever le capot pour voir ce qui s'y trouve, mais surtout, ne touchez à rien.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 19
    Points : 21
    Points
    21
    Par défaut Perte d'accès
    Je me suis mal exprimé. Dans phpmyadmin, j'ai un bdd sys, une bdd mysql et la bdd phpmyadmin et seulement elles.

    mot de passe et profil root ok

    chaque élément est installé individuellement, pas de wamp ou autre.

    Oui j'ai copié mon ancien \data dans le nouveau

    mysql dans c:\program files\mysql\mysql server 8.0.13

    datas dans c:\programdata\mysql

    je suis passé par l'outil d'installation de mysql pour mettre la nouvelle version (je pensais qu'il faisait alors une màj)

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut lducrocq.

    Non, ce n'est pas une mise à jour mais bien un changement de version où tu repars à vide.

    Citation Envoyé par lducrocq
    Dans phpmyadmin, j'ai un bdd sys, une bdd mysql et la bdd phpmyadmin et seulement elles.
    Qu'est-ce que tu veux en plus ?

    Citation Envoyé par lducrocq
    Oui j'ai copié mon ancien \data dans le nouveau
    Ce n'est pas la bonne méthode car s'il y a changement de version, il y a changement de structure dans les tables.

    Je t'ai indiqué la procédure à suite. Essayes !

    Citation Envoyé par lducrocq
    mysql dans c:\program files\mysql\mysql server 8.0.13
    datas dans c:\programdata\mysql
    Si le SGBDR mysql 8.0.13 est dans le répertoire : "c:\program files\mysql\mysql server 8.0.13", le répertoire "/data" sera dans "c:\program files\mysql\mysql server 8.0.13\data".

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/08/2019, 23h40
  2. Accès distant impossible après mise à jour de MySQL sur Debian
    Par Darkroxor dans le forum Administration
    Réponses: 6
    Dernier message: 14/10/2012, 18h09
  3. Perte de droits d'accès aux tables.
    Par Ashen Shugar dans le forum Administration
    Réponses: 1
    Dernier message: 26/10/2011, 21h11
  4. Duplication de table et mise à jour
    Par cyraile dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/01/2006, 09h53
  5. [MPD] Créé des tables de mise à jour
    Par Oberown dans le forum Schéma
    Réponses: 9
    Dernier message: 16/01/2005, 13h08

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