Erreur centreon [Résolu]

Signaler
-
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
-
Bonjour,

Je suis tout nouveau en informatique et je m'essaye un peu en monitoring notamment sur l'environnement centreon. Et je galère depuis quelques jours avec cette erreur "
SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost' "

Je tiens à préciser que je ne suis qu'a l'installation et que je n'ai pas encore créer de base de données.

Je vous remercie d'avance pour les différentes aides que vous m'apporterez.
A voir également:

3 réponses

Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 139
Bonjour,

Préliminaires

Cette erreur signifie que tu tentes de te connecter en local à ton serveur SQL avec le login
root
.

Dans SQL (que ce soit mysql ou postgresql), les profils sont définis par le couple (user, host). Dans mysql~MariaDB, ils sont plus précisément définis dans la base mysql, dans la table user (ce qui s'écrit
mysql.user
).

L'utilisateur
root@localhost
(ou
root@127.0.0.1
) est réserver à l'administrateur du serveur, pour se connecter au serveur SQL. Ce profil n'est pas sensé être utilisé par quelqu'un d'autre.

Quelques rappels (mysql)

Pour se connecter à un serveur de données, il faut bien évidemment qu'il soit installé et lancé.

Exemple : Sous Debian et les distributions qui en dérivent (Ubuntu, mint) pour installer MariaDB

sudo apt update
sudo apt install default-mysql-server


Tu peux ensuite contrôler qu'il est installé avec :

dpkg -l | egrep -i "maria|mysql"


Exemple : Pour vérifier que MariaDB est lancé :

(mando@antarctic) (~) $ systemctl status mysql.service 
● mariadb.service - MariaDB 10.5.8 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-01-29 22:14:16 UTC; 4 months 20 days ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/systemd/
Main PID: 1290395 (mariadbd)
Status: "Taking your SQL requests now..."
Tasks: 15 (limit: 9396)
Memory: 1.3G
CGroup: /system.slice/mariadb.service
└─1290395 /usr/sbin/mariadbd


Exemple : dans cet exemple, je me connecte en
root@127.0.0.1
(dans la commande suivante, le paramètre
-h 127.0.0.1
est sous entendu)

(mando@machine) (~) $ mysql -u root -p

MariaDB [mysql]> select user, host from mysql.user;
+------------------+-----------+
| User | Host |
+------------------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| root | machine |
| mariadb.sys | localhost |
| root | localhost |
+------------------+-----------+


Retour à ton problème

Dans ton cas, c'est un peu surprenant que Centreon tente de se connecter en root à ton serveur SQL. Normalement, chaque application à sa propre base de donnée et un profil SQL dédié pour s'y connecter (configuré de sorte à ne pas altérer les autres bases hébergées sur le serveur SQL). Par définition
root
a tous les droits et cela va donc à l'encontre de cette règle.

Commence par vérifier que le serveur SQL est installé et lancé. Assure-toi que la base centreon a été initialisée. J'imagine que centreon est livré avec un script qui va créer l'utilisateur SQL adéquat, la base centreon et les tables qu'elle contient (schéma). Contrôle notamment le contenu de
mysql.user
(en admettant que ce soit une serveur de base données de type mysql).

Enfin, tente de te connecter avec le profil SQL défini pour centreon depuis ton terminal. Si ça marche, c'est que tout va bien au niveau de la base de donnée. Sous réserve que Centreon utilise le même profil, lance la connexion depuis la même machine, et utilise le bon mot de passe, la connexion devrait alors s'établir.

Bonne chance
Merci beaucoup ton éclaircissement mamiemando.

En fait le problème se situait au niveau des privilèges de l'utilisateur root, j'ai du aller dans le base de données MySQL pour lui accorder tout les privilèges et après ça c'est passé.

Les tuto que j'ai regardées n'ont pas eu ce souci je sais pas pourquoi chez moi ça a beugué.
Messages postés
29984
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
26 juillet 2021
7 139
Bonjour,

Effectivement, il faut que l'utilisateur mysql avec lequel tu te connectes ait le droit d'accéder à la base (voir ce lien).

Ceci dit, il faut être vigilant à deux choses si tu veux une installation sûre :
  • L'utilisateur MySQL utilisé par ton application doit avoir des droits minimaux sur la base avec laquelle il interagit : si par exemple seul un accès en lecture est nécessaire, il n'a aucune raison d'avoir le droit de modifier le contenu des tables ou en créer de nouvelles.
  • L'utilisateur MySQL utilisé par ton application devrait être spécifique, et certainement pas root. Si ton application est corrompue, il devient alors possible de pirater toute la base.


En résumé, je te conseille de créer un utilisateur spécifique à ton application (qui, typiquement, porte le nom de ton application) et qui a les droits nécessaires et suffisant pour son bon fonctionnement.

Après... c'est toi qui voit :-)