명령 줄을 사용하여 mysql 사용자 비밀번호 변경


84

명령 줄을 사용하여 데이터베이스 사용자의 암호를 업데이트하려고하는데 작동하지 않습니다. 이것은 내가 사용하는 코드입니다.

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

누군가이 코드의 문제점을 말해 줄 수 있습니까?


어떤 단계를 따르고 있습니까? 단순히 넣는 것은 작동하지 않습니다. 내가 올바르게 기억한다면 그 프로세스와 그 코드.
Idris

아. 어떻게하는지 과정을 기억하십니까?
user3310572 2014

이것은 좀 더 상세하고 이해하기 더 쉬울한다이다 innovativethought.net/2007/05/17/...
이드리스

답변:


115

코드에서 작은 따옴표 안에 암호를 넣어보십시오. 또는 mysql 설명서 에 따라 다음이 작동합니다.

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

FLUSH PRIVILEGES;

마지막 줄이 중요하지 않으면 암호 변경이 안타깝게도 적용되지 않습니다.

편집하다:

내 지역에서 테스트를 실행했는데 효과가있었습니다.

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

Mine은 버전 5입니다. 다음 명령을 사용하여 버전을 확인할 수 있습니다.

SHOW VARIABLES LIKE "%version%";

4
그렇게하면 예기치 않은 토큰 근처에서 구문 오류가 반환됩니다 ( '
user3310572

1
어떤 버전의 mysql을 사용하고 있습니까? 버전 5.0 문서에서 위의 구문을 선택했습니다. 내가 게시 한 명령을 시도 했습니까?
hellboy 2014

나는 4.0 버전을 사용하고 있다고 믿고 예, 시도했습니다
user3310572 2014

명령은 MySQL Ver 14.14에서 잘 작동하며 암호가 따옴표로 묶여 있고 암호의 따옴표가 이스케이프되었는지 확인하십시오.
Snaver 2014-06-24

1
이상하게도 세척 후에, 여전히 나를 위해 작동하지 않습니다 :-( 내가 MySQL을 사용하고 있습니다5.7.18-0ubuntu0.16.04.1
coding_idiot

37

MySQL 5.7.6부터 ALTER USER

예:

ALTER USER 'username' IDENTIFIED BY 'password';

때문에:

  • SET PASSWORD ... = PASSWORD('auth_string') 구문은 MySQL 5.7.6에서 더 이상 사용되지 않으며 향후 MySQL 릴리스에서 제거됩니다.

  • SET PASSWORD ... = 'auth_string'구문은 더 이상 사용되지 않지만 ALTER USER이제 암호를 할당하는 데 선호되는 명령문입니다.


1
PHP를 통해 MySQL과 상호 작용하는 경우에도 마찬가지입니까?
oldboy aug.

@Anthony 예, MySQL 버전이 5.7.6 이상인 경우
Govind Rai

저는 MySQL을 처음 사용합니다. 무엇을 않습니다 ALTER USER ... IDENTIFIED BY ...정확히 무엇입니까? 방법에서 그 차이가 UPDATE ... SET ...나는 INSERT INTO ...?
oldboy

1
ALTER USER ... IDENTIFIED BY ...데이터베이스에 대한 사용자 권한을 구성하는 SQL 문입니다. UPDATE그리고 INSERT, 제안 업데이트 기록과 기록을 삽입하여 데이터베이스의 테이블에 이름이 같은 다른 기능을 가지고있다.
Govind Rai

2
mariaDb에서 오류를 제공합니다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
Pavel Niedoba

14

참고 : 루트 사용자로 로그인해야합니다.

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


3

MySQL 5.7.6 이전에는 명령 줄에서 작동합니다.

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

테스트 할 mysql 설치가 없지만 귀하의 경우에는

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

2

Windows 10에서는 현재 로그인을 종료하고 명령 줄에서 실행하십시오.

-> mysqladmin -u root password “newpassword”

루트 대신 모든 사용자가 될 수 있습니다.


1

이것은 나를 위해 작동합니다. MYSQL 웹 페이지 에서 솔루션을 얻었습니다.

MySQL에서 아래 쿼리를 실행하십시오.

FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'New_Password';

0

MySQL 8.0.18부터 이것은 나를 위해 잘 작동합니다.

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


-1

로그인 루트는이어야합니다 /usr/local/directadmin/conf/mysql.conf. 그런 다음 다음을 시도하십시오

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

호스트는 mysql 호스트입니다.


1
작동하지 않습니다. 예기치 않은 토큰 근처에서 구문 오류 반환 ( '
user3310572
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.