Changer le mot de passe root MySQL sur Ubuntu 16.04
Cet article vous décrit la procédure pour changer le mot de passe root MySQL sur Ubuntu 16.04.
Lorsque vous installez MySQL sur Ubuntu (16.04), l’installation vous demande de fixer un mot de passe pour le compte root MySQL. Il peut arriver que si vous générez un mot de passe aléatoire que certains caractères ne passent pas bien dans la boite de dialogue prévue à cet effet. Vous vous retrouvez alors dans l’impossibilité de vous connecter en root sur votre nouvelle installation.
Désactiver l’authentification MySQL
Pour changer le mot de passe root MySQL, il faut d’abord désactiver l’authentification MySQL afin de pouvoir se connecter.
Cette opération est possible grâce à l’option skip-grant-tables
Editez le fichier /etc/mysql/mysql.conf.d/mysqld.cnf et ajoutez cette option dans la section [mysqld]
[mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql skip-external-locking skip-grant-tables
Redémarrer mysql :
$ /etc/init.d/mysql restart
Changer le mot de passe root MySQL
Vous pouvez maintenant vous connecter sans mot de passe. Exécutez la console mysql en ligne de commande pour changer le mot de passe comme suit :
$ mysql -u root -p
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.16-0ubuntu0.16.04.1 (Ubuntu) Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use mysql; mysql> UPDATE user SET authentication_string = PASSWORD('password'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost'; Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec)
Réactivez l’authentification MySQL
Editez le fichier /etc/mysql/mysql.conf.d/mysqld.cnf et enlevez l’option skip-grant-tables.
Redémarrez mysql, l’authentification et votre mot de passe root MySQL sont à jour
$ /etc/init.d/mysql restart