Impossible de se connecter à la BDD

Bonjour,

Je m'appelle Johann, stagiaire dev web & mobile chargé de la gestion des applications utilisées sur l'intranet. J'ai été amené à transférer les données d'un serveur à un autre. Les serveurs sont hébergés et gérés par une société externe, le protocole de transfert est sous
scp
pour le nouveau serveur.

 root@x34p14ax003:~# uname -a
Linux x34p14ax003 5.4.0-104-generic #118-Ubuntu SMP Wed Mar 2 19:02:41 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
root@x34p14ax003:~# apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
Server built: 2022-03-16T16:52:53
root@x34p14ax003:~# mysql -V
mysql Ver 8.0.28-0ubuntu0.20.04.3 for Linux on x86_64 ((Ubuntu))
Les services mysql et apache2 sont actifs (running).


J'ai constaté plusieurs incohérences en comparant avec divers forum :
- absence du fichier
/etc/phpmyadmin/config-db.php
;
- configuration de
phpmyadmin
lors de l'installation qui me propose uniquement de choisir entre
apache
et
httpd
(user, manquants etc... manquant)
Idem lorsque je fais
sudo dpkg-reconfigure phpmyadmin
, il me propose juste de choisir entre
apache
et
httpd
.

Donc impossible de se connecter à la base de données via
phpmyadmin
ou
putty
.

$ mysql -u root -p
Enter password: *****
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)


Je ne peux donc pas créer de nouvel utilisateur, ni modifier ses privilèges en m'inspirant de … s-checking ce lien.

La commande
mysql_upgrade
me retourne :

The mysql_upgrade client is now deprecated. The actions executed by the upgrade client are now done by the server.
To upgrade, please start the new MySQL binary with the older data directory. Repairing user tables is done automatically. Restart is not required after upgrade.
The upgrade process automatically starts on running a new MySQL binary with an older data directory. To avoid accidental upgrades, please use the --upgrade=NONE option with the MySQL binary. The option --upgrade=FORCE is also provided to run the server upgrade sequence on demand.
It may be possible that the server upgrade fails due to a number of reasons. In that case, the upgrade sequence will run again during the next MySQL server start. If the server upgrade fails repeatedly, the server can be started with the --upgrade=MINIMAL option to start the server without executing the upgrade sequence, thus allowing users to manually rectify the problem.


J'ai donc procédé à la réinstallation des packages suivants :
phpmyadmin
,
mysql*
,
mysql-server*
via les lignes de commandes suivantes

sudo apt-get autoremove --purge nom_paquet 
apt install nom_paquet 
systemctl unmask mysql.service
service mysql start 
apt update


Le fichier
/etc/mysql/debian.cnf
contient :

client
host = localhost
user = debian-sys-maint
password = ************
socket = /var/run/mysqld/mysqld.sock

mysql_upgrade
host = localhost
user = debian-sys-maint
password = ************
socket = /var/run/mysqld/mysqld.sock
(le mot de passe est le même)
J'ai donc essayé avec les infos ici présente mais rien d'y fait.


Le fichier
/var/lib/mysql/x34p14ax003.err
contient :

 2022-03-25T09:17:26.790372Z 0 [Warning] [MY-013143] [Server] Column count of mysql.user is wrong. Expected 51, found 42. The table is probably corrupted
2022-03-25T09:17:26.790398Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.db. The table is probably corrupted!
2022-03-25T09:17:26.790411Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.db. The table is probably corrupted!
2022-03-25T09:17:26.790428Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.tables_priv. The table is probably corrupted!
2022-03-25T09:17:26.790442Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.tables_priv. The table is probably corrupted!
2022-03-25T09:17:26.790454Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.tables_priv. The table is probably corrupted!
2022-03-25T09:17:26.790469Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.columns_priv. The table is probably corrupted!
2022-03-25T09:17:26.790480Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.columns_priv. The table is probably corrupted!
2022-03-25T09:17:26.790501Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.procs_priv. The table is probably corrupted!
2022-03-25T09:17:26.790513Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.procs_priv. The table is probably corrupted!
2022-03-25T09:17:26.790526Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.procs_priv. The table is probably corrupted!
2022-03-25T09:17:26.790538Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.proxies_priv. The table is probably corrupted!
2022-03-25T09:17:26.790549Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.proxies_priv. The table is probably corrupted!
2022-03-25T09:17:26.790561Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.proxies_priv. The table is probably corrupted!
2022-03-25T09:17:26.790572Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.proxies_priv. The table is probably corrupted!
2022-03-25T09:17:26.790584Z 0 [Warning] [MY-013139] [Server] Cannot load from mysql.proxies_priv. The table is probably corrupted!
2022-03-25T09:17:26.794000Z 0 [Warning] [MY-010727] [Server] System table 'time_zone_leap_second' is expected to be transactional.
2022-03-25T09:17:26.794019Z 0 [Warning] [MY-010727] [Server] System table 'time_zone_name' is expected to be transactional.
2022-03-25T09:17:26.794032Z 0 [Warning] [MY-010727] [Server] System table 'time_zone' is expected to be transactional.
2022-03-25T09:17:26.794042Z 0 [Warning] [MY-010727] [Server] System table 'time_zone_transition_type' is expected to be transactional.
2022-03-25T09:17:26.794053Z 0 [Warning] [MY-010727] [Server] System table 'time_zone_transition' is expected to be transactional.
2022-03-25T09:17:26.795761Z 0 [Warning] [MY-010727] [Server] System table 'servers' is expected to be transactional.
2022-03-25T09:17:26.796167Z 0 [Warning] [MY-010727] [Server] System table 'func' is expected to be transactional.
2022-03-25T09:17:26.800486Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.28-0ubuntu0.20.04.3' socket: '/tmp/tmp.D5Sta4QzdT/mysqld.sock' port: 0 (Ubuntu).
2022-03-25T09:17:26.815456Z 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.28-0ubuntu0.20.04.3).
2022-03-25T09:17:28.259174Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.28-0ubuntu0.20.04.3) (Ubuntu).


Je constate que les table sont corrompues sans y avoir touché personnellement. Je néglige pas le fait d'avoir fait une mauvaise manipulation, car je suis débutant dans l'administration système. Je m'excuse d'avance si j'ai oublié de partager des informations primordiales à la compréhension.

Avez-vous des suggestions ? Des solutions ?

Je vous remercie d'avance.
Johann

19 réponses

  1. Modérateur
    Bonjour,

    Dans le doute je vais te dire comment je ferais en partant de rien.

    Installation LAMP (Linux Apache2 MySQL PHP)

    sudo apt update
    sudo apt upgrade
    sudo apt install apache2 default-mysql-server libapache2-mod-php


    MySQL :

    Normalement tu n'as rien de plus à faire car le serveur web et MySQL sont co-localisés. Le fichier
    /etc/mysql/debian.cnf
    ne doit pas être modifié. C'est un compte MySQL, utilisé par APT lors des mises à jours pour maintenir le serveur MySQL.

    Tu devrais pouvoir te connecter à ton serveur MySQL avec le mot de passe défini à l'installation de
    default-mysql-server
    avec la commande :

    mysql -u root -p


    Si tu ne connais pas le mot de passe root de ta base MySQL, il existe des procédures (que tu peux trouver facilement sur internet) pour le réinitialiser.

    Note que cette commande est indépendante de
    phpmyadmin
    (qui n'a pas besoin d'être installé pour pouvoir utiliser la commande
    mysql
    ). La commande
    mysql
    est un client MySQL (comme son nom l'indique) et peut fonctionner du moment que le serveur MySQL auquel tu tentes de te connecter est lancé. Le serveur MySQL fonctionne indépendamment du serveur web (apache) et PHP.

    PHP :

    1) Récupére le numéro de version de PHP :

    ls /etc/apache2/mods-available/php*conf


    2) Imaginons que la commande précédente retourne
    /etc/apache2/mods-available/php7.3.conf
    , lance :

    sudo a2enmod php7.3


    3) Redémarrage apache

    systemctl apache2 restart


    Installation de
    phpmyadmin


    Si on te demande de choisir le serveur web, choisis
    apache
    .

    Transférer une base existante

    Le plus simple est de faire un dump de l'ancienne base que tu chargeras dans la nouvelle. L'approche classique consiste à utiliser
    mysqldump
    . À toi de voir quelles bases tu veux récupérer.

    Sur le serveur source, en admettant que tu veuilles sauver labase
    db_name
    :

    mysqldump -u root -p db_name > backup-file.sql


    Libre à toi de transférer le fichier
    backup-file.sql
    entre l'ancien et le nouveau serveur avec
    scp
    ou n'importe quel autre technologie. Une fois le fichier sur la machine qui héberge le nouveau serveur MySQL, charge-le :

    mysql -u root -p db_name < backup-file.sql


    En particulier, il n'est pas clair que tu veuilles récupérer la base
    mysql
    , en particulier car
    mysql.user
    définis les utilisateurs propre à ton serveur MySQL (et en particulier l'utilisateur défini par Debian dans
    /etc/mysql/debian.cnf
    ). Généralement, les données d'une application donnée sont stockée dans une base donnée et donc quand tu transvases cette application d'un serveur MySQL à un autre, tu ne transfères que cette base.

    Bonne chance
    1. Bonjour,

      Merci de votre réponse. Néanmoins, je n'arrive tout simplement pas à rentrer dans
      mysql
      à partir de
      putty 
      via
      sudo mysql
      ou
      mysql -u root -p
      : l'acces m'est refusé.

      J'ai réinstallé via le chapitre 7 de https://doc.ubuntu-fr.org/mysql, néanmoins je bloque quand il me demande de
      sudo mv /var/lib/mysql /var/lib/mysql.bak


      Je ne peux donc pas augmenter les privilèges ni effectuer tout ce que vous me dîtes.

      En fait, il y a 2 jours, afin d'augmenter les privilèges de mon compte principal, j'ai effectué des requêtes avec
      GRANT
      etc ... Néanmoins, il y avait une erreur sur les tables de type
      MyIsam
      . En cherchant sur Internet, j'ai remarqué qu'il fallait juste changer en InnoDb. Néanmoins après l'avoir fait mes tables ont été corrompues et après réinstallation, je ne pouvais plus rentrer dans mysql coté
      putty
      ou
      phpmyadmin
      .
      1. Et le user et password dans le fichier
        /etc/myqsl/debian.cnf
        ne m'autorise pas les accès
        Lorsque je fais :
        df -h


        Filesystem      Size  Used Avail Use% Mounted on
        udev 1.9G 0 1.9G 0% /dev
        tmpfs 391M 1.1M 390M 1% /run
        /dev/sda4 3.9G 3.7G 0 100% /
        /dev/sda5 28G 4.5G 22G 18% /usr
        tmpfs 2.0G 0 2.0G 0% /dev/shm
        tmpfs 5.0M 0 5.0M 0% /run/lock
        tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
        /dev/sda7 976M 2.6M 907M 1% /opt
        /dev/sda3 96G 61M 91G 1% /home
        /dev/sda2 977M 197M 714M 22% /boot
        /dev/sda8 105G 4.1G 95G 5% /var
        /dev/sda6 2.0G 6.1M 1.8G 1% /tmp
        tmpfs 391M 0 391M 0% /run/user/1001
        1. Modérateur
          Bonjour,

          Je n'arrive tout simplement pas à rentrer dans
          mysql
          à partir de
          putty 
          via
          sudo mysql
          ou
          mysql -u root -p
          : l'acces m'est refusé.

          Vérifie que le serveur SQL est lancé. Si c'est le cas, il devrait écouter sur le port 3306 :

          sudo netstat -ntlp


          Par ailleurs, pas besoin de
          sudo
          pour utiliser la commande
          mysql
          : cette commande est (comme tout client) une commande utilisateur, même si elle permet éventuellement d'administrer un serveur MySQL (mais pour cela, il faut pouvoir se logguer en root au sens MySQL). Note que le "root" au sens système et au sens MySQL n'ont rien à voir. Plus généralement les utilisateurs MySQL et Linux n'ont rien à voir.

          J'ai réinstallé via le chapitre 7 de https://doc.ubuntu-fr.org/mysql, néanmoins je bloque quand il me demande de
          sudo mv /var/lib/mysql /var/lib/mysql.bak


          Pourquoi ? Quel est le problème ?

          Je ne peux donc pas augmenter les privilèges ni effectuer tout ce que vous me dîtes.

          Il n'est pas question d'élever des privilèges ici, c'est une notion différente (par exemple, ajouter un utilisateur dans un groupe ça c'est élever des privilèges). Là il s'agit juste de se connecter à la base MySQL et éventuellement récupérer le mot de passe root.

          En fait, il y a 2 jours, afin d'augmenter les privilèges de mon compte principal, j'ai effectué des requêtes avec
          GRANT
          etc ...

          Et te souviens-tu des commandes que tu as tapé ?

          Néanmoins, il y avait une erreur sur les tables de type
          MyIsam
          . En cherchant sur Internet, j'ai remarqué qu'il fallait juste changer en InnoDb. Néanmoins après l'avoir fait mes tables ont été corrompues et après réinstallation, je ne pouvais plus rentrer dans mysql coté
          putty
          ou
          phpmyadmin
          .

          Mauvaise idée. Mais quoi qu'il en soit rien ne t'empêche de purger ton serveur mysql actuel et virer toutes les bases (de /var/lib/mysql) puis de réinstaller proprement comme je te l'ai indiqué.

          sudo apt purge paquet


          (en remplaçant
          paquet
          par le nom du ou des paquet(s) associé(s) à ton serveur MySQL). Si tu ne les connais pas, reporte-moi le résultat de
          dpkg -l | grep ^ii | grep mysql
          ..

          Et le user et password dans le fichier /etc/myqsl/debian.cnf ne m'autorise pas les accès

          Je ne sais pas comment tu te connectes mais de toute façon tu n'es pas sensé les utiliser.

          Lorsque je fais df -h [...]

          Même si ça n'est pas la cause du problème on peut voir que / est quasi saturé, donc faire un peu de ménage ne ferait pas de mal. Dans un premier jet tu peux faire
          sudo apt clean
          ...

          Bonne chance
          1. Bonjour,

            Désolé de ma réponse tardive j'étais en semaine de cours.
            Je peux me connecter à
            mysql
            via
            putty
            avec la commande
            mysql -u root -p
            (mot de passe
            abcd
            ).

            Néanmoins, je n'y arrive pas avec
            phpmyadmin
            , malgré le fait que je rentre le même id (
            root
            ) et le même mdp (
            abcd
            ). Voici l'erreur renvoyée par
            phpmyadmin
            lorsque j'essaye de me connecter.

            "ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist"


            Dans
            putty
            je lance la requête :
            SELECT user, host FROM mysql.user WHERE user ='mysql.infoschema';

            ... et j'obtiens :
            Empty set (0.00 sec)

            ... ce qui confirme que cet utilisateur n'existe pas.

            Je souhaite créer/supprimer un utilisateur, et pour cela j'ai voulu utiliser la requête :
            CREATE USER 'root'@'localhost' IDENTIFIED BY '****************';
            GRANT ALL PRIVILEGES ON .....;
            FLUSH PRIVILEGES;

            ... mais cela renvoie l'erreur :
            ERROR 1726 (HY000): Storage engine 'MyISAM' does not support system tables. [mysql.user] 


            Comme dans mon précédent message, in me suggère de modifier le type des enregistrement (MyIsam => Innodb) ce que je ne souhaite pas faire car cela m'a, auparavant, porté préjudice.

            J'ai effectué la commande
            sudo ntstat -ntlp
            et en effet le serveur écoute sur le port 3306.

            Mon idée étant de créer l'utilisateur
            'mysql.infoschema'@'localhost'
            et de lui accorder les droits ?

            Les conséquences directs de cela est l'utilisabilité des applications qui est nulle.

            Cordialement,
            Johann
            1. Modérateur
              Bonjour,

              Bon déjà un progresse, si tu arrives à te connecter avec
              mysql
              à ton serveur MySQL, cela veut dire que ce dernier est fonctionnel et que tu as des identifiants fonctionnels.

              Selon cette discussion, ton problème est dû au fait que MySQL a été mis à jour depuis que tu as installé
              phpmyadmin
              et donc il faut recréer correctement certains privilèges. Ce même lien te propose d'ailleurs une solution :

              Dans putty, connecte toi à MySQL :
              mysql -u root -p

              Dans MySQL, lance la requête :
              SET GLOBAL innodb_fast_shutdown = 1;

              Quitte MySQL (ctrl d). De retour dans le shell, tape :
              mysql_upgrade -u root -p


              Note que cette solution ne te fais pas changer la nature des tables.

              Mon idée étant de créer l'utilisateur 'mysql.infoschema'@'localhost' et de lui accorder les droits ?

              Non, il ne faut pas créer cet utilisateur qui n'a aucun sens. Une fois que tu auras mis correctement à jour ta base MySQL, tout devrait rentrer dans l'ordre.

              Bonne chance
              1. Suite à cela, la requête
                SET GLOBAL innodb_fast_shutdown = 1;
                me donne cette erreur :
                "terminate called after throwing an instance of 'std::logic_error'
                what(): basic_string::_M_construct null not valid
                Aborted (core dumped)"


                À force de chercher, je me suis rendu compte, et également comme tu l'avais amorcé, j'ai importé ma base
                mysql
                de l'ancienne sous mysql 5.7 à mysql 8.0 ce qui pourrait expliquer toutes ces erreurs ? (simple question).
                1. Je vais supprimer toutes les bases, Réimporter en ayant supprimer au préalable les bdd Info-schema mysql et performance_schema
                  1. Modérateur
                    Bonjour,

                    Suite à cela, la requête
                    SET GLOBAL innodb_fast_shutdown = 1;
                    me donne cette erreur [...]

                    Ton erreur est bizarre, je ne vois pas où est le problème mais je pense que ça n'est pas un gros drame (voir cette discussion vu que tu étais en MySQL > 5.6.8).

                    J'ai importé ma base mysql de l'ancienne sous mysql 5.7 à mysql 8.0 ce qui pourrait expliquer toutes ces erreurs ? (simple question)

                    Exactement, si ton phpmyadmin était configuré pour mysql 5.7 et que tu es désormais en mysql 8.0, sa configuration est caduque. Normalement, il suffit de lancer :
                    mysql_upgrade -u root -p

                    ... pour résoudre ton problème.

                    Au besoin, tu peux aussi réinstaller
                    phpmyadmin
                    via ton gestionnaire de paquets.

                    Bonne chance
                    1. Je me permet de vous embêter une dernière fois pour une question toute bête.
                      Je n'arrive pas à supprimer certaines bases de données car il y a des erreurs de synthaxe dans leur nom.
                      => caddi-test et metropolitain2.0
                      le '-' et le '.' ne sont pas supportés ? Avez vous une astuce ? Je ne trouve rien sur internet
                      1. Modérateur
                        Pour ton problème de suppression de base, essaye d'entourer le nom de la base avec
                        `...`
                        :

                        DROP DATABASE `caddi-test`
                        DROP DATABASE `metropolitain2.0`


                        Merci à l'avenir d'ouvrir un nouveau sujet pour toute question qui n'est pas en rapport avec la question initiale.

                        Donc, pour revenir à la question initiale : est-ce que ça signifie que
                        phpmyadmin
                        marche maintenant correctement ?

                        Bonne chance
                    2. Actuellement je peux me connecter à phpmyadmin. Néanmoins, cela continue de me mettre l'erreur
                       ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exis t

                      Ce qui fait que je n'ai aucun rendu, je ne peux pas voir les bases de données, ni les comptes utilisateurs, rien.

                      J'ai supprimer toutes les bases, réinstallé phpmyadmin et les paquets php, mysql à l'aide de :
                       sudo apt-get autoremove --purge nomdupaquet 

                      Néanmoins cela n'a rien changé. L'utilisateur 'principale' reste 'mysql.infoschema'@'localhost' alors qu'il n'existe pas que je me connecte en tant que root avec un mdp définis.
                      1. Je vais essayer de rétrograder la version phpmyadmin 8.0 (actuel) => 5.7 car les tables privilèges sont supprimées sous phpmyadmin 8.0, or étant donné que j'ai fait l'erreur d'importer ces fameuses tables privilèges, j'imagine qu"il y a conflit et donc erreur.
                        1. mysql_upgrade -u root -p

                          Erreur :
                           terminate called after throwing an instance of 'std::logic_error'
                          what(): basic_string::_M_construct null not valid
                          Aborted (core dumped)

                          Lien en rapport : https://www.reddit.com/r/cpp_questions/comments/lpuyp9/terminate_called_after_throwing_an_instance_of/

                          Lorsque je rentre dans mysql et que je veux simplement afficher les bdd via :
                          SHOW DATABASES;

                          Erreur :
                          ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist


                          Et donc lorsque j veux créer un user, modifier/supprimer, ajouter des privilèges
                          ERROR 1726 (HY000): Storage engine 'MyISAM' does not support system tables. [mysql.user]


                          Lorsque j'essaye de me connecter à phpmyadmin via :
                          adresseip/phpmyadmin => accès refusé

                          Sachant que je ne peux effectuer casi aucune modification, quelles sont actions pourraient me permettre de régler le problème ?
                          1. Modérateur
                            Bonjour,

                            Peux-tu essayer de purger tout ce que tu as installé et repartir sur une installation LAMP et
                            phpmyadmin
                            propre ?

                            LAMP

                            apt update
                            apt install apache2 default-mysql-server libapache2-mod-php
                            ls /etc/apache2/mods-available/php*conf # Pour déterminer la version de PHP
                            a2enmod php7.4 # Adapter le numéro de version de PHP, cf commande précédente
                            systemctl apache2 restart


                            phpmyadmin

                            apt install phpmyadmin


                            Si demandé :
                            • choisir
                              apache2
                              ;
                            • choisir "Yes" si on te demande si la base doit être configurée avec
                              db-common
                              .


                            Bonne chance
                            1. Bonjour,

                              En effet, je suis repartis sur une base neuve. Je n'ai plus les erreurs en question, les différents problèmes liés aux Bdd sont réglés.
                              Néanmoins, c'est l'authentification qui maintenant pose problème.
                              Voila comment ca se passe, nous avons une plateforme sur laquelle plusieurs applications peuvent être utilisé.
                              L'authentification s'effectue pour chacune d'entre elles à travers la page connexion. Les données users sont stockés sur l'Active Directory et le lien s'effectue en back end se fait via ldap (car les applis sont développés en php).

                              Bien entendu, côté serveur, les packages liés à ldap ont été installés
                              sudo apt-get install *ldap*


                              Avec * de chaque côté afin d'installer tous les packages ayant ldap dans leur nom.
                              libaprutil1-ldap is already the newest version (1.6.1-4ubuntu2).
                              php7.4-ldap is already the newest version (7.4.3-4ubuntu2.10).
                              libldap-2.4-2 is already the newest version (2.4.49+dfsg-2ubuntu1.8).
                              libldap-common is already the newest version (2.4.49+dfsg-2ubuntu1.8).
                              Some packages could not be installed. This may mean that you have
                              requested an impossible situation or if you are using the unstable
                              distribution that some required packages have not yet been created
                              or been moved out of Incoming.
                              The following information may help to resolve the situation:

                              The following packages have unmet dependencies:
                              argonaut-ldap2zone : Conflicts: ldap2zone but 0.2-11build1 is to be installed
                              fusiondirectory-plugin-ldapmanager : Conflicts: gosa-plugin-ldapmanager but 2.7.4+reloaded3-11 is to be installed
                              gosa-plugin-ldapmanager : Depends: gosa (= 2.7.4+reloaded3-11) but it is not going to be installed
                              ldap-utils : Depends: libldap-2.4-2 (= 2.4.49+dfsg-2ubuntu1.7) but 2.4.49+dfsg-2ubuntu1.8 is to be installed
                              libldap2-dev : Depends: libldap-2.4-2 (= 2.4.49+dfsg-2ubuntu1.7) but 2.4.49+dfsg-2ubuntu1.8 is to be installed
                              libnss-ldapd : Conflicts: libnss-ldap
                              libpam-ldapd : Conflicts: libpam-ldap
                              proftpd-mod-ldap : Depends: proftpd-basic (= 1.3.6c-2) but it is not going to be installed
                              slapd : Depends: libldap-2.4-2 (= 2.4.49+dfsg-2ubuntu1.7) but 2.4.49+dfsg-2ubuntu1.8 is to be installed
                              E: Unable to correct problems, you have held broken packages.


                              Pensez vous que l'authentification des applications ne s'effectue pas car un de ses packages est "broken" ? Ou que l'installation des packages via *ldap* était trop vague ?

                              Le code des applis est certes "ancien" mais fonctionnelle, le problème ne vient pas du back end.
                              J'ai bien entendu essayé de "réparer" le package via divers tuto tel que :
                              https://websetnet.net/fr/how-to-fix-broken-packages-in-ubuntu-via-terminal/

                              Concernant votre suggestion de repartir sur une installation LAMP, sauf erreur de ma part le package n'est pas présent sur nos dépôt. J'ai effectué la commande suivante
                              apt-cache policy lamp

                              Est-ce réellement nécessaire ? Si oui, je demanderais aux personnes concernées, néanmoins je travaille avec ce que l'on m'a fournis, ce qui fait que mes actions sont limitées.

                              Voici le rendu, Lorsque j'essaye de le connecter (page connexion)


                              Lorsque je suis connecté :


                              L'erreur dans la console lorsque j'inspecte :
                              Failed to load resource: the server responded with a status of 500 (Internal Server Error)


                              Navigateur : Microsoft Edge (choisi par l'entreprise)
                              Changer de navigateur ne change rien.

                              Avez-vous des suggestions ?
                              1. Modérateur
                                Bonjour,

                                Pensez vous que l'authentification des applications ne s'effectue pas car un de ses packages est "broken" ? Ou que l'installation des packages via *ldap* était trop vague ?

                                Oui c'est le moins qu'on puisse dire :D Il ne faut installer que ce dont tu as besoin. Beaucoup de paquets s'interface avec LDAP et ne sont absolument pas nécessaire pour ce que tu tentes de faire (quoi que tu tentes de faire). C'est le meilleur moyen d'installer plein de trucs qui ne servent à rien (avec tous les ennuis que tu peux imaginer).

                                Ensuite, je ne comprends pas pourquoi subitement tu parles de LDAP. Tu n'as pas expliqué comment ton site interagissait avec le LDAP. Par exemple si c'est du code PHP qui se connecte à un serveur LDAP, le bon paquet est plus probablement
                                php-ldap
                                mais déjà il faudrait comprendre ce que tu cherches à faire.

                                Enfin et surtout, sur un forum, on essaye d'avoir une question pour un fil de discussion sinon le fil devient illisible et inexploitable pour les personnes qui rencontrent l'un de tes problèmes. On n'est parti d'un problème de migration de base de données MySQL et là on parle de LDAP - ça n'a aucun rapport.

                                Concernant votre suggestion de repartir sur une installation LAMP, sauf erreur de ma part le package n'est pas présent sur nos dépôt. J'ai effectué la commande suivante
                                apt-cache policy lamp
                                [...]

                                L'installation de Linux Apache2 MySQL PHP est détaillée dans le message #15, tu n'as pas besoin d'inventer des commandes :-)

                                Lorsque je suis connecté [...]

                                Merci d'éviter les captures d'écran quand il suffit de copier coller le contenu de la page. En l'occurrence, PHP n'est pas activé au niveau du serveur web (il faudrait activer le module apache2 avec
                                a2enmod
                                ). Si tu reprends l'installation LAMP comme je te l'ai indiquée, cela résoudra le problème.

                                Failed to load resource: the server responded with a status of 500 (Internal Server Error)

                                Ce n'est pas surprenant si PHP n'est pas activé, vu que le site est en PHP.

                                Navigateur : Microsoft Edge (choisi par l'entreprise)
                                Changer de navigateur ne change rien.


                                Ce n'est pas surprenant non plus puisque le problème est au niveau du serveur et non au niveau du client.

                                Bonne chance
                                1. Bonjour,

                                  J'ai purgé tous ce que j'ai installé et suis repartis sur une installation LAMP comme suggéré, puis installé les paquets nécessaires tel que
                                  php-ldap
                                  .
                                  Concernant LDAP, j'en ai parlé mais très vaguement. C'est le code PHP (back end) qui gère l'authentification à l'active directory à travers ces 2 lignes de codes :
                                  $adServer = "ldap://commun.ad.sncf.fr";
                                  $ldap = ldap_connect($adServer);

                                  S'ensuit de plusieurs lignes de codes, les 2 principales sont celles ci-dessus.
                                  Concernant la question du fil de discussion, j'ai conscience que la base de données MySQL ne rime pas avec authentification LDAP et je m'en excuse.
                                  PHP est activé, car la page de connexion s'affiche, idem pour
                                  phpmyadmin
                                  (http://adresse_ip_du_site/phpmyadmin).
                                  J'ai eu des conflits apparemment sans importance d'après ce forum : https://www.debian-fr.org/t/installation-de-php7-4/83234
                                  Considering dependency mpm_prefork for php7.4: Considering conflict mpm_event for mpm_prefork: Considering conflict mpm_worker for mpm_prefork:


                                  Bref, mon problème reste le même, la page connexion du site s'affiche (donc connexion bdd + PHP actif). Néanmoins, lorsque l'on se connecte, l message suivant s'affiche :
                                  < ?php include('../head.php'); $req = $bdd->query('SELECT * FROM salle_reunion'); $fonction = $bdd->query("SELECT * from utilisateur where cp = '".$_SESSION['cp']."'"); ?>

                                  Donc c'est l'authentification qui pose problème, car le code PHP ne peut être pris en compte si les données d'authentification sont, pour ce cas-ci, inexistante.
                                  Je ne tiens pas à installer plus que nécessaire. Quel paquet me manque t'il ?
                                  1. root@x34p14ax004:~# dpkg -l *ldap*
                                    Desired=Unknown/Install/Remove/Purge/Hold
                                    | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
                                    |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
                                    ||/ Name Version Architecture Description
                                    +++-======================-======================-============-=====================================================
                                    un ldap-utils <none> <none> (no description available)
                                    ii libaprutil1-ldap:amd64 1.6.1-4ubuntu2 amd64 Apache Portable Runtime Utility Library - LDAP Driver
                                    un libldap-2.3-0 <none> <none> (no description available)
                                    ii libldap-2.4-2:amd64 2.4.49+dfsg-2ubuntu1.8 amd64 OpenLDAP libraries
                                    ii libldap-common 2.4.49+dfsg-2ubuntu1.8 all OpenLDAP common files for libraries
                                    un libldap2 <none> <none> (no description available)
                                    un libnet-ldap-perl <none> <none> (no description available)
                                    un libsasl2-modules-ldap <none> <none> (no description available)
                                    ii openvpn-auth-ldap 2.0.4-1ubuntu2 amd64 OpenVPN LDAP authentication module
                                    ii php-ldap 2:7.4+75 all LDAP module for PHP [default]
                                    ii php7.4-ldap 7.4.3-4ubuntu2.10 amd64 LDAP module for PHP
                                    un sudo-ldap <none> <none> (no description available)
                                    1. Modérateur
                                      Bonjour,

                                      Concernant la question du fil de discussion, j'ai conscience que la base de données MySQL ne rime pas avec authentification LDAP et je m'en excuse.

                                      Mon problème ce n'est pas ça : c'est que le problème initial était faire marcher LAMP et phpmyadmin et manifestement tu dis qu'ils marchent, donc ce problème est résolu. Je comprends que maintenant, tu veuilles déboguer ton backend mais c'est une autre question, donc ça devrait être dans un nouveau fil de discussion.

                                      Considering dependency mpm_prefork for php7.4: Considering conflict mpm_event for mpm_prefork: Considering conflict mpm_worker for mpm_prefork:

                                      Ce message ne me paraît pas normal. Je tenterais plutôt ce qui est expliqué ici :

                                      sudo a2dismod mpm_event
                                      sudo a2enmod mpm_prefork
                                      sudo systemctl restart apache2
                                      sudo a2enmod php7.4


                                      Par rapport à l'erreur
                                      < ?php include('../head.php'); $req = $bdd->query('SELECT * FROM salle_reunion'); $fonction = $bdd->query("SELECT * from utilisateur where cp = '".$_SESSION['cp']."'"); ?>


                                      En admettant que le copier coller soit correct, il ne devrait pas y avoir d'espace entre
                                      <
                                      et
                                      ?
                                      , sans quoi apache ne comprend pas qu'il est supposé passer par un module (en l'occurrence celui qui permet d'interpréter le code PHP) pour traiter cette section de code. Et donc pour lui c'est du HTML, bien que le module PHP soit activé.

                                      Paquets LDAP

                                      Je ne vois rien d'exceptionnel, tu peux rester comme tel. Et je ne pense pas que tu aies besoin de plus que
                                      php-ldap
                                      .

                                      Bonne chance