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.
mysql
command-line
putty
user3310572
źródło
źródło
Odpowiedzi:
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%";
źródło
5.7.18-0ubuntu0.16.04.1
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, aleALTER USER
jest teraz preferowaną instrukcją do przypisywania haseł.źródło
ALTER USER ... IDENTIFIED BY ...
dokładnie robi? czym to się różni odUPDATE ... SET ...
lubINSERT INTO ...
?ALTER USER ... IDENTIFIED BY ...
to instrukcja SQL, która konfiguruje uprawnienia użytkownika do bazy danych.UPDATE
iINSERT
mają różne funkcjonalności, które jak sugerują nazwy, aktualizują rekordy i wstawiają rekordy do tabel w twojej bazie danych.ERROR 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
Uwaga: powinieneś zalogować się jako użytkownik root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('your password');
źródło
to jest zaktualizowana odpowiedź dla WAMP v3.0.6
UPDATE mysql.user SET authentication_string=PASSWORD('MyNewPass') WHERE user='root'; FLUSH PRIVILEGES;
źródło
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';"
źródło
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.
źródło
To działa dla mnie. Mam rozwiązanie ze strony internetowej MYSQL
W MySQL uruchom poniższe zapytania:
FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_Password';
źródło
Od MySQL 8.0.18 To działa dobrze dla mnie
mysql> SET PASSWORD FOR 'user'@'localhost' = 'userpassword';
źródło
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.
źródło