Phpmyadmin connexion impossible

Bonjour,

Depuis ma migration vers debian wheezy, il m’est impossible de me connecter à phpmyadmin, j’obtiens une erreur #1045 Connexion au serveur MySQL non permise.
J’essaye de me logguer en root comme avec mon user normal, je suis sûr de mes mots de passe, le site qui est sur le serveur accède bien à la base de donnée et si je me connecte à mysql en console avec :

ça fonctionne parfaitement, avec l’autre user aussi.

J’ai tenté :

mysql> update user set password=PASSWORD('toto') where User`root`; mysql> flush privileges ;

Mais ça ne change rien au problème…

Merci à vous :slightly_smiling:

peux tu préciser depuis quels PC tu te connectes en ligne de commande.
J’ai compris que tu faisais un ssh sur le serveur, puis la connexion à mysql.
Dans ce cas tu te connectes en local, alors qu’avec phpmyadmin tu te connectes à distance.
Vérifie la config de mysql pour qu’elle autorise les connexions à distance.

Si t’as changer ton mot de passe root sous mysql , il faut le changer dans le fichier de conf de PMA /etc/phpmyadmin/config-db.php

Je sais pas si ton problème viens de la mais bon , c’est une piste :slightly_smiling:.

Dans mon /etc/phpmyadmin/config-db.php j’ai un utilisateur “phpmyadmin” indiqué avec le mot de passe correspondant (celui que j’ai donné lors de la configuration), il n’y a ni root ni mon user normal, et je n’ai pas changé le mot de passe depuis l’installation de la base.

Sinon pour répondre à piratebab j’ai deux serveurs, un en local (ma machine de bureau), sous sid, sur laquelle je fais mes tests, je me connecte sans problème à mysql en console, donc en local, mais impossible de me connecter à phpmyadmin dans mon navigateur (localhost/…)
et un autre (le vrai serveur), sous wheezy, sur mon réseau local auquel j’accède par ssh, je me connecte aussi sans problème à mysql en console, et impossible aussi de me connecter à phpmyadmin dans mon navigateur (moniplocale/…).

J’ai l’impression que quelque chose à changé depuis squeeze (dans phpmyadmin ou dans wheezy) sur mes précédentes machines sous squeeze (les mêmes) aptitude install phpmyadmin, je donnais le mot de passe root dans l’interface ncurses et ça marchait…

tu dis que mysql fonctionne très bien depuis la console donc il n’ est pas incriminé, cherche plutôt du côté de la config apache/phpmyadmin

le fichier phpmyadmin ou phpmyadmin.conf est il présent dans
/etc/apache2/conf.d ?

J’utilise nginx et php-fpm.

J’ai ça pour la partie phpmyadmin dans /etc/nginx/sites-available/www

[code]
server {
listen 80 default;
server_name www.mon_domaine.fr;
root /data/sites/www;
index index.html index.htm index.php;
error_log /var/log/nginx/www_error.log;

location = /favicon.ico {
    log_not_found off;
    }   

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#   
location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
#   # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
#   
#   # With php5-cgi alone:
#   fastcgi_pass 127.0.0.1:9000;
#   # With php5-fpm:
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}   


# Configuration de phpmyadmin
location /phpmyadmin {
           root /usr/share/;
           index index.php index.html index.htm;
           location ~ ^/phpmyadmin/(.+\.php)$ {
                   try_files $uri =404;
                   root /usr/share/;
                   fastcgi_pass unix:/var/run/php5-fpm.sock;
                   fastcgi_index index.php;
                   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                   include /etc/nginx/fastcgi_params;
           }   
           location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
                   root /usr/share/;
           }   
    }  [/code]

Je viens de me rendre compte que si j’arrête mysql et que je le relance de cette manière :

J’accède sans problème à phpmyadmin. Dès que je redémarre mysql le mode normal ça ne marche à nouveau plus. Je suis donc certain que c’est un problème de droits d’accès. Pourtant tout se fait en local (serveur mysql + serveur web + navigateur sur la même machine), et en console tout fonctionne.

J’ai tenté en console :

[code]mysql> use mysql
Database changed
mysql> update user set password=PASSWORD(‘TiAZm?8$n8SDqGM?Lw@Rg)(’) where User=‘root’ ;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 5 Changed: 0 Warnings: 0

mysql> grant all privileges on . to ‘root’@‘localhost’ identified by ‘TiAZm?8$n8SDqGM?Lw@Rg)(’ with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on . to ‘root’@’%’ identified by ‘TiAZm?8$n8SDqGM?Lw@Rg)(’ with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges ;
Query OK, 0 rows affected (0.00 sec)
[/code]

Mais ça ne change rien :frowning:

Merci à vous :slightly_smiling:

Salut,
Ça m’est arrivé une fois ou deux cette galère avec mysql.
Essaye de remplacer localhost par 127.0.0.1 ou * ou de supprimer l’utilisateur et de le recréer.

Essayes de réparer phpmyadmin avec cette commande (en root):

dpkg-reconfigure phpmyadmin

Rappel : utilises le même mot de passe de l’administrateur mysql (root) lorsque tu crée ton mot de passe administrateur pour phpmyadmin.

[quote=“fluo”]Essayes de réparer phpmyadmin avec cette commande (en root):

dpkg-reconfigure phpmyadmin

[/quote]

J’ai déjà tenté de reconfigurer phpmyadmin avec dpkg-reconfigure, je l’ai désinstallé, purgé, réinstallé, réinstallé mysql, essayé avec le serveur web lighttpd (que dpkg configure tout seul) j’ai toujours la même erreur #1045 et j’ai le pb sur 3 machines (2 sous wheezy et 1 sous sid).

Je me demande si le problème ne vient pas des caractères spéciaux dans le mot de passe, je tente avec un mot de passe plus simple et je vous tiens au courant.

Merci.

Salut,

Normalement, rien à voir.

[code]mysql> grant all privileges on . to ‘root’@‘127.0.0.1’ identified by ‘TiAZm?8$n8SDqGM?Lw@Rg)(’ with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges ;
Query OK, 0 rows affected (0.00 sec)
[/code]

Toujours pas possible de se connecter, mais :

[code]mysql> update user set password=PASSWORD(‘foo’) where User=‘root’ ;
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5 Changed: 5 Warnings: 0

mysql> grant all privileges on . to ‘root’@‘127.0.0.1’ identified by ‘foo’ with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on . to ‘root’@‘localhost’ identified by ‘foo’ with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges ;
Query OK, 0 rows affected (0.00 sec)[/code]

Là pas de soucis de connection…
Moralité phpmyadmin n’aime pas les caractères spéciaux dans les mots de passe (depuis la version de wheezy parce que sous squeeze avec le même ça passait très bien…). Je trouve ça étonnant mais enfin…

Tu utilise de l’utf8 partout ou tu a un mix dès fois que :think:

Re,
Hum, ça vaudrait le coup de voir si la syntaxe n’a pas changé 'mot_de_passe ?
Tu devrais essayer "mot_de_passe"

Salut,
Je confirme que sur mysql 5.5.31 avec des parenthèses “normales” ton mot de passe est accepté.

[code]mysql> grant all privileges on . to ‘root’@’*’ identified by “TiAZm?8$n8SDqGM?Lw@Rg)(” with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on . to ‘root’@‘localhost’ identified by “TiAZm?8$n8SDqGM?Lw@Rg)(” with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all privileges on . to ‘root’@‘127.0.0.1’ identified by “TiAZm?8$n8SDqGM?Lw@Rg)(” with grant option;
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges ;
Query OK, 0 rows affected (0.00 sec)[/code]

Je pense aussi à un problème d’encodage, si c’était un problème d’apostrophe je suppose que ça ne marcherait ni dans phpmyadmin ni dans l’interpréteur mysql en console, or l’interpréteur marche très bien (mais je l’ai pas bien en main). De plus j’ai souvent des problèmes lors des copier-coller dans mon navigateur.
Mon système est en utf-8 :

locale LANG=fr_FR.UTF-8 LANGUAGE= LC_CTYPE="fr_FR.UTF-8" LC_NUMERIC="fr_FR.UTF-8" LC_TIME="fr_FR.UTF-8" LC_COLLATE="fr_FR.UTF-8" LC_MONETARY="fr_FR.UTF-8" LC_MESSAGES="fr_FR.UTF-8" LC_PAPER="fr_FR.UTF-8" LC_NAME="fr_FR.UTF-8" LC_ADDRESS="fr_FR.UTF-8" LC_TELEPHONE="fr_FR.UTF-8" LC_MEASUREMENT="fr_FR.UTF-8" LC_IDENTIFICATION="fr_FR.UTF-8" LC_ALL=

Par contre je ne sais pas vérifier pour mysql ou le navigateur. Je vais approfondir ça.

Merci :slightly_smiling:

Je me rends compte dans phpmyadmin que j’ai des tables en ‘utf8_general_ci’, en ‘utf8_bin’, et d’autres en ‘latin1_swedish_ci’.
Aucune idée d’où le latin1 suédois peut sortir…

Mes connexions se font au travers de php avec pdo, j’utilise l’option utf-8 :

Mais la création des bases et des tables ont été faites à la main dans phpmyadmin, je suppose que ça vient de là.

Uép, je confirme que phpmyadmin par défaut crée les interclassements en latin1_swedish_ci