MySQL 5.7 a changé le modèle de sécurité : désormais, MySQL root
La connexion nécessite un sudo
.
C'est-à-dire que phpMyAdmin sera no capable d'utiliser root
les lettres de créance.
La solution la plus simple, la plus sûre et permanent La solution sera de créer un nouvel utilisateur et d'accorder les privilèges nécessaires.
1. Connectez-vous à mysql
sudo mysql --user=root mysql
2. Créez un vrai mot de passe
Dans les étapes suivantes, je vais utiliser <please_replace_this>
comme exemple de mot de passe. S'IL VOUS PLAÎT, REMPLACEZ-LE PAR VOTRE MOT DE PASSE ! N'UTILISEZ PAS <please_replace_this>
COMME MOT DE PASSE !
3. Créez un utilisateur pour phpMyAdmin
Exécutez les commandes suivantes (en remplaçant <please_replace_this>
par le mot de passe souhaité) :
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY '<please_replace_this>';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Si votre phpMyAdmin se connecte à localhost, cela devrait suffire.
4. Facultatif et non sécurisé : autoriser les connexions à distance
Souvenez-vous de : permettre à un utilisateur distant d'avoir tous les privilèges est une préoccupation de sécurité et c'est no nécessaire dans la plupart des cas.
Dans cette optique, si vous souhaitez que cet utilisateur dispose des mêmes privilèges lors des connexions à distance, en outre, exécuter (en remplaçant <please_replace_this>
par le mot de passe utilisé à l'étape 2) :
CREATE USER 'phpmyadmin'@'%' IDENTIFIED BY '<please_replace_this>';
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
5. Mettez à jour phpMyAdmin
使用方法 sudo
, modifier /etc/dbconfig-common/phpmyadmin.conf
en mettant à jour les valeurs des utilisateurs et des mots de passe dans les sections suivantes (en remplaçant le fichier <please_replace_this>
par le mot de passe utilisé à l'étape 2) :
# dbc_dbuser: database user
# the name of the user who we will use to connect to the database.
dbc_dbuser='phpmyadmin'
# dbc_dbpass: database user password
# the password to use with the above username when connecting
# to a database, if one is required
dbc_dbpass='<please_replace_this>'