Impossible de se connecter sur une BDD MySQL

Résolu
razuki Messages postés 293 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
je travaille sur Debian 5.0.5.
J'ai installé une solution open source de collecte/gestion de logs dessus. La solution comprend :
- des bases de données (ossimDS, snortDS, osvdbDS, pour stocker les logs ) utilisant MySQL, phpMyAdmin
- un serveur ( pour le traitement des logs )
- un framework ( pour monitorer les logs )
- un agent ( client qui collecte les logs)

- j'ai fini d'installer les bases de données
- coté serveur : j'ai fini de compiler et de configurer. Le problème est que, le serveur n'arrive pas à se connecter sur les bases de données ( la première base concernée : ossimdb). Voici le message d'erreur au lancement du serveur :
aro-debian:/home/aro#  CONNECTION ERROR
 NAME: ossimDS
 PROVIDER: MySQL
 DSN: PORT=3306;USER=root;PASSWORD=988a2a299a;DATABASE=ossim;HOST=127.0.0.1
We can't open the database connection. Please check that your DB is up.


-- j'ai essayé de tester les auters mots de passe possibles mais j'ai toujours l'erreur
-- quand je vais sur phpMyAdmin et voir les privilèges sur la base ossim. j'obtiens :

Utilisateur  	Serveur  	Type  	Privilèges  	"Grant"  	Action
debian-sys-maint 	localhost 	global 	ALL PRIVILEGES 	Oui 	Changer les privilèges
root 	127.0.0.1 	global 	ALL PRIVILEGES 	Oui 	Changer les privilèges
root 	aro-debian 	global 	ALL PRIVILEGES 	Oui 	Changer les privilèges
root 	localhost 	global 	ALL PRIVILEGES 	Oui 	Changer les privilèges


-- Donc selon ce tableau, apparement le serveur doit pouvoir se connecter sur la (les) base(s)
-- Je ne vois pas d'ou vient le problème

merci d'avance pour votre aide

9 réponses

  1. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Peux-tu nous reporter le résultat de :

    service mysql status  
    netstat -ntlp


    Vérifie que tu parviens à te connecter à la base à la main :

    mysql -u root -p  
    mysql -u root -p -h 127.0.0.1  
    


    (une fois identifié, vérifie que les bases en questions existent en tapant) :

    show databases;


    Exemple :

    (root@silk) (~) # service mysql status
    /usr/bin/mysqladmin  Ver 8.42 Distrib 5.1.49, for debian-linux-gnu on i486
    Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version          5.1.49-1-log
    Protocol version        10
    Connection              Localhost via UNIX socket
    UNIX socket             /var/run/mysqld/mysqld.sock
    Uptime:                 23 min 49 sec
    
    Threads: 1  Questions: 127  Slow queries: 11  Opens: 135  Flush tables: 1  Open tables: 32  Queries per second avg: 0.88.
    
    
    (root@silk) (~) # mysql -u root -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 47
    Server version: 5.1.49-1-log (Debian)
    
    Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL v2 license
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | ma_base            |
    | mysql              |
    | test               |
    | testmysql          |
    +--------------------+
    6 rows in set (0.08 sec)


    Vérifie que dans /etc/mysql/my.cnf et que dans ~/.my.cnf tu n'as pas une section qui "injecte" un mauvais mot de passe :

    (mando@silk) (~) $ cat ~/.my.cnf 
    [client]
    password="pouet"


    Bonne chance
    0
  2. razuki Messages postés 293 Statut Membre 1
     
    Je travaille sous Debian. Apparemment la commande ne marche pas ( whoami = root )
    :
    aro-debian:/home/aro# service mysql status
    bash: service: command not found
    


    Sinon:
    aro-debian:/home/aro# mysql status
    ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
    


    aro-debian:/home/aro# netstat -ntlp
    Connexions Internet actives (seulement serveurs)
    Proto Recv-Q Send-Q Adresse locale          Adresse distante        Etat        PID/Program name
    tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      2737/inetd      
    tcp        0      0 0.0.0.0:2049            0.0.0.0:*               LISTEN      -               
    tcp        0      0 0.0.0.0:548             0.0.0.0:*               LISTEN      2900/afpd       
    tcp        0      0 0.0.0.0:901             0.0.0.0:*               LISTEN      2737/inetd      
    tcp        0      0 0.0.0.0:48072           0.0.0.0:*               LISTEN      1489/rpc.statd  
    tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      3751/mysqld     
    tcp        0      0 0.0.0.0:39309           0.0.0.0:*               LISTEN      -               
    tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      2737/inetd      
    tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      2737/inetd      
    tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1477/portmap    
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1867/sshd       
    tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2400/cupsd      
    tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN      2084/postgres   
    tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2667/exim4      
    tcp        0      0 0.0.0.0:55422           0.0.0.0:*               LISTEN      2726/rpc.mountd 
    tcp6       0      0 :::139                  :::*                    LISTEN      2750/smbd       
    tcp6       0      0 :::80                   :::*                    LISTEN      4118/apache2    
    tcp6       0      0 :::22                   :::*                    LISTEN      1867/sshd       
    tcp6       0      0 ::1:631                 :::*                    LISTEN      2400/cupsd      
    tcp6       0      0 ::1:5432                :::*                    LISTEN      2084/postgres   
    tcp6       0      0 :::445                  :::*                    LISTEN      2750/smbd       

    Donc selon ce tableau, mysqld écoute bien sur le port 3306 comme indiqué dans le fichier de config du serveur.

    mysql -u root -p et mysql -u root -p -h 127.0.0.1 donnent le même résultat :
    aro-debian:/home/aro# mysql -u root -p -h 127.0.0.1
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 313
    Server version: 5.0.51a-24+lenny4 (Debian)
    
    Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
    mysql> show databases
        -> ;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema | 
    | mysql              | 
    | ossim              | 
    | snort              | 
    +--------------------+
    4 rows in set (0.00 sec)
    


    pour :
    (mando@silk) (~) $ cat ~/.my.cnf 
    [client]
    password="pouet"

    j'ai pas très bien compris ce qu'il faut faire. pourquoi il y a un point devant "my.cnf" ?

    le resultat donne :
    aro-debian:/home/aro# cat ~/.my.cnf
    cat: /root/.my.conf: Aucun fichier ou répertoire de ce type
    aro-debian:/home/aro# cat ~/my.cnf
    cat: /root/.my.conf: Aucun fichier ou répertoire de ce type


    Sinon, les seules lignes contenant des informations )à propos de [client] dans /etc/mysql/my.cnf :
    # This will be passed to all mysql clients
    # It has been reported that passwords should be enclosed with ticks/quotes
    # escpecially if they contain "#" chars...
    # Remember to edit /etc/mysql/debian.cnf when changing the socket location.
    [client]
    port            = 3306
    socket          = /var/run/mysqld/mysqld.sock


    Je ne vois toujours pas d'ou vient le problème !
    0
  3. razuki Messages postés 293 Statut Membre 1
     
    j'ai oublié un petit détail lors du premier post.
    J'ai oublié d'afficher ici la commande :
    aro-debian:/home/aro# ossim-server -d -c /etc/ossim/server/config.xml 
    aro-debian:/home/aro#  CONNECTION ERROR 
     NAME: ossimDS 
     PROVIDER: MySQL 
     DSN: PORT=3306;USER=root;PASSWORD=azerty;DATABASE=ossim;HOST=127.0.0.1 
    We can't open the database connection. Please check that your DB is up. 
    
    0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    pour :

    (mando@silk) (~) $ cat ~/.my.cnf
    [client]
    password="pouet"
    j'ai pas très bien compris ce qu'il faut faire. pourquoi il y a un point devant "my.cnf" ?


    Le point c'est juste une erreur de frappe, puisqu'il n'y a pas.

    aro-debian:/home/aro# service mysql status
    bash: service: command not found

    Plutôt /etc/init.d/mysql status

    Sinon, je n'ai pas compris ce que tu veux.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. razuki Messages postés 293 Statut Membre 1
     
    c'est mamimando qui ma demandé de taper les commandes.
    Si j'ai bien compris :
    il veut vérifier
    - si mysqld est bien en écoute, => OK
    - si en tant que root j'arrive à entre dans mysql => ok
    - s'il n'y a pas d'autres mot de passe qui écrase le mot de passe inscrit dans le fichier de config. => OK, pas d'autre mot de passe.

    Donc ce que je veux moi c'est que quand le serveur se connecte sur la base de donnée, il n'y ait pas d'erreur de connexion :)
    0
  7. razuki Messages postés 293 Statut Membre 1
     
    Je ne sais pas si les infos suivantes vont rapporter quelque chose ... :

    aro-debian:/home/aro# /etc/init.d/mysql status
    /usr/bin/mysqladmin  Ver 8.41 Distrib 5.0.51a, for debian-linux-gnu on i486
    Copyright (C) 2000-2006 MySQL AB
    This software comes with ABSOLUTELY NO WARRANTY. This is free software,
    and you are welcome to modify and redistribute it under the GPL license
    
    Server version		5.0.51a-24+lenny4
    Protocol version	10
    Connection		Localhost via UNIX socket
    UNIX socket		/var/run/mysqld/mysqld.sock
    Uptime:			29 min 14 sec
    
    Threads: 1  Questions: 840  Slow queries: 0  Opens: 1673  Flush tables: 1  Open tables: 64  Queries per second avg: 0.479.
    
    0
  8. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Non il n'y avait pas d'erreur de frappe il s'agit bien de ~/.my.cnf (au même titre que ~/.bashrc). C'est un fichier profil que tu peux créer pour compléter les paramètres de /etc/my.cnf et en particulier l'authentification. Je me demandais si le problème ne pouvait pas venir de là.

    Pour ce qui est de la commande service, c'est le remplaçant d'une invocation directe du script mais c'est équivalent à :

    /etc/init.d/mysql status


    On voit donc que le serveur est bien lancé (ce qui confirme le résultat de netstat).

    Au niveau du serveur en lui-même, vu que le client mysql parvient à se connecter c'est plutôt bon signe.

    A priori tout est ok pour le port, le profil mysql et le port. C'est peut être le mot de passe renseigné (988a2a299a) auprès d'ossim-server qui est invalide (d'ailleurs quand tu auras réglé le problème, pense à le changer parce que là il apparaît en clair sur le forum !).

    Il doit s'agir du mot de mot de passe que tu tapes suite à la commande :

    mysql -u root -p -h 127.0.0.1


    Bon sinon essaye de voir ce que ça donne en changeant la bind-adress dans /etc/mysql/my.cnf à 0.0.0.0 puis relance mysql :

    /etc/init.d/mysql restart


    Dans ton cas tu ne devrais pas avoir à la corriger puisque normalement ossim-server se connecte en local (normalement) mais c'est juste pour faire un test. Si ça ne change rien, remet 127.0.0.1.

    A priori ossim-server se connecte en root sur la base, ce qui est moyen, mais ce qui a le mérite de s'assurer que ce n'est pas un problème de droit au niveau de la base ossim.

    Bref pour moi, l'erreur la plus crédible serait au niveau du mot de passe...

    Bonne chance
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut Miss,

      Non il n'y avait pas d'erreur de frappe il s'agit bien de ~/.my.cnf
      Effectivement, tu as raison ce fichier peut être crée, en revanche je me demande combien l'utilisent pour avoir la chance que l'erreur se trouve là ;-)
      Perso c'est la 1ère fois que j'attends de l'existence de ce fichier.

      Merci, de m'avoir ouvrir les yeux ;-))
      0
  9. razuki Messages postés 293 Statut Membre 1
     
    Merci pour votre aide, ca m'a permis de mieux localiser le problème, et de connaitre davantage comment ca fonctionne :)
    Maintenant le serveur peut se connecter aux bases.
    En fait c'est tout simplement l'adresse IP dans le fichier de config du serveur qui n'était pas le bon ... puis la base osvbdb n'était pas montée ...
    0
  10. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 944
     
    Merci pour ces précisions, et bonne continuation !
    0