Environnement actuel:
mysql> show variables like "%version%";
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.7.13 |
| protocol_version | 10 |
| slave_type_conversions | |
| tls_version | TLSv1,TLSv1.1 |
| version | 5.7.13 |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | Linux |
+-------------------------+------------------------------+
8 rows in set (0.01 sec)
Utilisateur de la commande de changement de mot de passe:
mysql> update user set password=PASSWORD("XXXX") where user="root";
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
Suis-je en train de manquer quelque chose?
mysql
en mode sans échec. alors vous pouvez changer le mot de passe rootRéponses:
Dans MySQL 5.7, le
password
champ dansmysql.user
le champ table a été supprimé, maintenant le nom du champ estauthentication_string
.Choisissez d'abord la base de données:
Et puis montrez les tableaux:
Vous trouverez le
user
tableau et voyez ses champs:Vous vous rendrez compte qu'aucun champ n'est nommé
password
, le champ du mot de passe est nomméauthentication_string
. Alors, faites ceci:Comme suggéré par @Rui F Ribeiro, vous pouvez également exécuter:
la source
SET PASSWORD FOR 'root' = PASSWORD('new_password');
La manière MySQL de changer le mot de passe est
SET PASSWORD
voir MySQL 5.7 Reference Manual / ... / SET PASSWORD Syntax
La réponse acceptée de Rahul montre comment mettre à jour le mot de passe avec la
DML
déclaration.Attention: ce n'est pas la voie officielle et prise en charge. Cela peut causer des problèmes si vous ne savez pas ce que vous faites. N'oublie pas
FLUSH PRIVILEGES
.Arrêtez d'utiliser FLUSH PRIVILEGES
S'il vous plaît utiliser
GRANT
,REVOKE
,SET PASSWORD
ouRENAME USER
et non des déclarations DML directes.Mise à jour: SET PASSWORD ... = La syntaxe PASSWORD ('auth_string') est obsolète à partir de MySQL 5.7.6 et sera supprimée dans une future version de MySQL.
la source
mysqladmin -u user-name password -p "oldpassword" "newpass"
si vous pouvez vous connecter, essayez cela
""
ne fonctionnera pas, essayez un''
seul devisupdate user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE';
la source
authentication_string
Dans mon cas
Je pense donc que votre commande de mise à jour est correcte, mais vous devez redémarrer votre serveur mysql.
la source
Pour ce problème, j'ai utilisé une méthode simple et grossière, renommer le nom de champ en mot de passe, la raison en est que j'utilise le logiciel mac navicat premium dans l'erreur de fonctionnement visuel: colonne inconnue 'mot de passe' dans 'Liste des champs', le le logiciel lui-même utilise un mot de passe pour que je ne puisse pas fonctionner facilement. Par conséquent, je racine dans la ligne de commande de base de données, exécutez
Et puis modifiez le nom du champ:
Après tout normal.
la source