Aktuelles Umfeld:
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)
Kennwortänderungsbefehl Benutzer:
mysql> update user set password=PASSWORD("XXXX") where user="root";
ERROR 1054 (42S22): Unknown column 'password' in 'field list'
Vermisse ich etwas?
mysql
im abgesicherten Modus zu starten . dann können Sie das root-Passwort ändernAntworten:
In MySQL 5.7 ist das
password
Feld inmysql.user
Tabellenfeld entfernt, jetzt lautet der Feldnameauthentication_string
.Wählen Sie zuerst die Datenbank:
Und dann zeige die Tabellen:
Sie finden die
user
Tabelle und sehen ihre Felder:Sie werden feststellen, dass es kein benanntes
password
Feld gibt, das Passwortfeld heißtauthentication_string
. Also mach einfach folgendes:Wie von @Rui F Ribeiro vorgeschlagen, können Sie alternativ Folgendes ausführen:
quelle
SET PASSWORD FOR 'root' = PASSWORD('new_password');
Die MySQL-Methode zum Ändern des Passworts lautet
SET PASSWORD
siehe MySQL 5.7 Referenzhandbuch / ... / SET PASSWORD Syntax
Die akzeptierte Antwort von Rahul zeigt, wie das Passwort mit
DML
Anweisung aktualisiert wird .Achtung: Das ist nicht der offizielle und unterstützte Weg. Es kann Probleme verursachen, wenn Sie nicht wissen, was Sie tun. Nicht vergessen
FLUSH PRIVILEGES
.Verwenden Sie FLUSH PRIVILEGES nicht mehr
Bitte verwenden
GRANT
,REVOKE
,SET PASSWORD
, oderRENAME USER
und nicht direkt DML - Anweisungen.Update: SET PASSWORD ... = PASSWORD-Syntax ('auth_string') ist seit MySQL 5.7.6 veraltet und wird in einer zukünftigen MySQL-Version entfernt.
quelle
mysqladmin -u user-name password -p "oldpassword" "newpass"
Wenn Sie sich anmelden können,
""
versuchen Sie es mit einem''
einfachen Anführungszeichenupdate user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE';
quelle
authentication_string
In meinem Fall
Ich denke, Ihr Update-Befehl ist richtig, aber Sie müssen Ihren MySQL-Server neu starten.
quelle
Für dieses Problem habe ich eine einfache und unhöfliche Methode verwendet, den Feldnamen in Passwort umzubenennen, der Grund dafür ist, dass ich die mac navicat premium Software bei der visuellen Fehlbedienung verwende: Unbekannte Spalte 'Passwort' in 'Feldliste', die Software selbst verwendet Passwort, so dass ich nicht einfach bedienen kann. Deshalb root ich in der Datenbank-Kommandozeile, laufe
Und ändern Sie dann den Feldnamen:
Immerhin normal.
quelle