Zmień hasło użytkownika mysql za pomocą wiersza poleceń


84

Próbuję zaktualizować hasło użytkownika bazy danych za pomocą wiersza poleceń, ale to nie działa. Oto kod, którego używam:

mysql> UPDATE user SET password=PASSWORD($w0rdf1sh) WHERE user='tate256';

Czy ktoś mógłby mi powiedzieć, co jest nie tak z tym kodem.


Jakie kroki podążasz? Samo włożenie go nie zadziała. Jeśli dobrze pamiętam, to proces i ten kod.
Idris

Ach. Czy pamiętasz proces, jak to zrobić?
user3310572

Jest to trochę bardziej szczegółowe i powinno być łatwiejsze do zrozumienia innovativethought.net/2007/05/17/…
Idris

Odpowiedzi:


115

W swoim kodzie spróbuj umieścić hasło w pojedynczym cudzysłowie. Alternatywnie, zgodnie z dokumentacją mysql, powinno działać:

SET PASSWORD FOR 'jeffrey'@'localhost' = PASSWORD('cleartext password');

FLUSH PRIVILEGES;

Ostatnia linia jest ważna, w przeciwnym razie zmiana hasła nie odniesie skutku.

EDYTOWAĆ:

Przeprowadziłem test w moim lokalnym i zadziałał -

mysql>  set password for 'test' = PASSWORD('$w0rdf1sh');
Query OK, 0 rows affected (0.00 sec)

Moja to wersja 5. Możesz użyć następującego polecenia, aby określić swoją wersję -

SHOW VARIABLES LIKE "%version%";

4
Kiedy to robię, zwraca błąd składni w pobliżu nieoczekiwanego tokenu (
``

1
Jakiej wersji mysql używasz? Podniosłem powyższą składnię z dokumentacji wersji 5.0. Czy wypróbowałeś polecenie, które opublikowałem?
hellboy

Uważam, że używam wersji 4.0 i tak, próbowałem
user3310572

Polecenie działa dobrze dla mnie w MySQL Ver 14.14, upewnij się, że hasło jest zawinięte w cudzysłowy, a wszelkie cudzysłowy w haśle są chronione.
Snaver

1
O dziwo, nawet po spłukaniu nadal nie działa dla mnie :-( używam MySQL5.7.18-0ubuntu0.16.04.1
coding_idiot

37

Od MySQL 5.7.6 użyj ALTER USER

Przykład:

ALTER USER 'username' IDENTIFIED BY 'password';

Dlatego:

  • SET PASSWORD ... = PASSWORD('auth_string') składnia jest przestarzała od wersji MySQL 5.7.6 i zostanie usunięta w przyszłej wersji MySQL.

  • SET PASSWORD ... = 'auth_string'składnia nie jest przestarzała, ale ALTER USERjest teraz preferowaną instrukcją do przypisywania haseł.


1
czy to prawda nawet w przypadku interakcji z MySQL przez PHP?
oldboy

@Anthony tak, jeśli twoja wersja MySQL to> = 5.7.6
Govind Rai

Jestem nowy w MySQL. co ALTER USER ... IDENTIFIED BY ...dokładnie robi? czym to się różni od UPDATE ... SET ...lub INSERT INTO ...?
oldboy,

1
ALTER USER ... IDENTIFIED BY ...to instrukcja SQL, która konfiguruje uprawnienia użytkownika do bazy danych. UPDATEi INSERTmają różne funkcjonalności, które jak sugerują nazwy, aktualizują rekordy i wstawiają rekordy do tabel w twojej bazie danych.
Govind Rai

2
daje błąd w mariaDbERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root' IDENTIFIED BY
Pavel Niedoba

14

Uwaga: powinieneś zalogować się jako użytkownik root

 SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');

6

to jest zaktualizowana odpowiedź dla WAMP v3.0.6

UPDATE mysql.user 
SET authentication_string=PASSWORD('MyNewPass') 
WHERE user='root';

FLUSH PRIVILEGES;

3

Przed MySQL 5.7.6 działa to z wiersza poleceń:

mysql -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$w0rdf1sh');"

Nie mam instalacji mysql do przetestowania, ale myślę, że w twoim przypadku tak będzie

mysql -e "UPDATE mysql.user SET Password=PASSWORD('$w0rdf1sh') WHERE User='tate256';"

2

W systemie Windows 10 po prostu wyjdź z bieżącego logowania i uruchom go w wierszu poleceń

-> mysqladmin -u root password “newpassword”

gdzie zamiast roota może być dowolny użytkownik.



0

Od MySQL 8.0.18 To działa dobrze dla mnie

mysql> SET PASSWORD FOR 'user'@'localhost' = 'userpassword';


-1

Twój root logowania powinien być /usr/local/directadmin/conf/mysql.conf. Następnie spróbuj podążać

UPDATE mysql.user SET password=PASSWORD('$w0rdf1sh') WHERE user='tate256' AND Host='10.10.2.30';
FLUSH PRIVILEGES;

Host to Twój host mysql.


1
Nie działa.
Zwracający
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.