Impossible de se connecter à la BDD

Fermé
Johann - Modifié le 25 mars 2022 à 15:08
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 - 11 avril 2022 à 18:21
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

mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié le 25 mars 2022 à 15:25
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
0
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
.
0
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
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
28 mars 2022 à 02:42
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié le 4 avril 2022 à 15:20
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
0
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).
0
Je vais supprimer toutes les bases, Réimporter en ayant supprimer au préalable les bdd Info-schema mysql et performance_schema
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié le 4 avril 2022 à 16:06
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
0
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
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié le 5 avril 2022 à 00:33
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
0
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.
0
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.
0
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 ?
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
Modifié le 8 avril 2022 à 18:01
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
0
JohannD_78 Messages postés 5 Date d'inscription mercredi 6 avril 2022 Statut Membre Dernière intervention 11 avril 2022
8 avril 2022 à 09:37
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 ?
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
8 avril 2022 à 18:14
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
0
JohannD_78 Messages postés 5 Date d'inscription mercredi 6 avril 2022 Statut Membre Dernière intervention 11 avril 2022
Modifié le 11 avril 2022 à 18:12
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 ?
0
JohannD_78 Messages postés 5 Date d'inscription mercredi 6 avril 2022 Statut Membre Dernière intervention 11 avril 2022
11 avril 2022 à 12:00
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)
0
mamiemando Messages postés 33077 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 18 avril 2024 7 748
11 avril 2022 à 18:21
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
0