# Soucis de connexion MySQL access denied

**URL:** <https://www.debian-fr.org/t/soucis-de-connexion-mysql-access-denied/78762>\
**Category:** Support Debian\
**Tags:** mysql\
**Created:** [Mars 8, 2019, 4:08 UTC](https://www.debian-fr.org/t/soucis-de-connexion-mysql-access-denied/78762 "2019-03-08T16:08:33Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![chrisVdd](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chrisvdd/32/7772_2.png) [@chrisVdd](https://www.debian-fr.org/u/chrisVdd)\
**Post date:** [Mars 8, 2019, 4:08 UTC](https://www.debian-fr.org/t/soucis-de-connexion-mysql-access-denied/78762/1 "2019-03-08T16:08:33Z")

</div>

Bonjour la compagnie,

J’ai eu dernièrement quelques soucis avec MySQL.  
Histoire de ne pas mettre le bordel, j’ai procédé à une désinstallation propre.

Ensuite, j’ai donc réinstallé MySQL \> MariaDB.  
A la fin de l’installation, j’ai lancé la commande `mysql_secure_installation` histoire de faire les choses proprement.  
Histoire de tester, une fois tout terminé, j’ai lancé la commande `mysql` et là… c’est le drame:  
ERROR 1698 (28000): Access denied for user ‘chris’@‘localhost’

J’ai jamais vraiment touché à la configuration de MySQL donc je suis un peu paumée

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Mars 8, 2019, 7:46 UTC](https://www.debian-fr.org/t/soucis-de-connexion-mysql-access-denied/78762/2 "2019-03-08T19:46:05Z")

</div>

La connexion avec root est disponible ?

Tu as un dump de ta/tes base(s) ?

Tu ne précise pas non plus ta version 😉

---

<div class="post-metadata">

**Author:** ![chrisVdd](https://www.debian-fr.org/user_avatar/www.debian-fr.org/chrisvdd/32/7772_2.png) [@chrisVdd](https://www.debian-fr.org/u/chrisVdd)\
**Post date:** [Mars 9, 2019, 11:03 UTC](https://www.debian-fr.org/t/soucis-de-connexion-mysql-access-denied/78762/3 "2019-03-09T11:03:57Z")

</div>

Arg, manque d’infos, désolée.

Bon alors… comme je le disais, si je fais : `mysql -v` (sans root), j’ai l’erreur suivante:  
**Access denied for user ‘chris’@'localhost’**

La même commande, en root, passe nickel et j’obtiens l’output suivant:  
**Welcome to the MariaDB monitor. &nbsp;Commands end with ; or \g.**  
**Your MariaDB connection id is 6**  
**Server version: 10.1.37-MariaDB-0+deb9u1 Debian 9.6**

Au niveau du dump, je ne suis pas certaine mais… en recherchant, j’ai effectivement un dossier “dump” dans /home/username/dump. Cela a-t-il un impact ?

Pour être totalement complète, j’ai utilisé ce tuto pour installer mariadb: [[https://linuxize.com/post/how-to-install-mariadb-on-debian-9/](https://linuxize.com/post/how-to-install-mariadb-on-debian-9/)]([http://How](http://How) to install MariaDB on debian 9)

La raison pour laquelle j’ai souhaité désinstaller/réinstaller mariadb: je travaille sur un projet symfony, et pour la création de database, j’utilise la commande `php bin/console doctrine:database:create` comme je le fais depuis des années, avec mon utilisateur (sous entendu sans root).  
Sauf que… sans savoir pourquoi, si je lance la commande, j’ai l’erreur "Access denied for user ‘chris’@‘localhost’

Merci

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Mars 9, 2019, 12:02 UTC](https://www.debian-fr.org/t/soucis-de-connexion-mysql-access-denied/78762/4 "2019-03-09T12:02:18Z")

</div>

Une fois connecté sur ta base de donnée avec l’utilisateur root regarde les droits de ton utilisateur ainsi que les _host_ relié à cet utilisateur qui conditionne donc l’accès avec cet utilisateur.

Pour vérifier les droits de ton utilisateur :

```auto
SELECT * FROM mysql.user WHERE user like '%chris%'\G

```

Pour lister de puis où quel utilisateur est enregistré :

```auto
SELECT User,Host FROM mysql.user;

```

Je me suis pas mal creusé la tête avec dernièrement avec les dernières version de Mysql et de MariaDB, il y a pas mal de chose qui change y compris les variables _character\_set_ et les variables _colation_.  
La gestion des droits à pas trop évolué du moment que tu utilisé des versions de MySQL pas trop vieillottes.

Si tu n’a pas configuré correctement ton fichier _host_ il est possible que localhost ou 127.0.0.1 ne permette pas la connexion à ton serveur de base de données, à tester avec un client MySQL depuis une machine distante aussi après avoir autorisé bien entendu cette IP.

---

<div class="post-metadata">

**Author:** ![Sputnik93](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/35a633/32.png) [@Sputnik93](https://www.debian-fr.org/u/Sputnik93)\
**Post date:** [Mars 11, 2019, 11:27 UTC](https://www.debian-fr.org/t/soucis-de-connexion-mysql-access-denied/78762/5 "2019-03-11T11:27:45Z")

</div>

J’imagine que quand tu fais `mysql -v` (le -v c’est pour _verbose_, si tu veux juste afficher la version de mysql c’est -V), mysql va chercher à mapper l’utilisateur système qui exécute la commande avec un rôle de base de données qui a le même nom. Donc si tu as un rôle chris dans ta base de données, c’est bon, sinon l’erreur est normale.

Deux petites choses en plus: mysql\_secure installation est une bonne idée, mais n’est pas suffisant pour protéger une BDD mysql/mariadb: la preuve tu peux te connecter au rôle root sans donner de mot de passe. Tu peux regarder [ici](https://websiteforstudents.com/mariadb-installed-without-password-prompts-for-root-on-ubuntu-17-10-18-04-beta/) pour y remédier.

La commande standard pour se connecter à une base de données mysql locale:  
`mysql -u <utilisateur de base de données> -p <nom de la base de données>`  
Le -p permet d’informer mysql qu’on veut se connecter avec un mot de passe, qui sera demandé.
