다음 코드를 고려해보세요.
UPDATE user set password=PASSWORD('NEWPASSWORD_CAME_HERE') WHERE User='root';
쓰여진 곳에는 NEWPASSWORD_CAME_HERE
(따옴표 사이에) 비밀번호를 입력했습니다.
그러나 이 쿼리를 실행하면 다음 오류가 발생합니다.
오류 1046(3D000): 선택된 데이터베이스가 없습니다.
이 오류가 발생하는 이유는 무엇입니까? 나는 다른 가이드를 따랐는데 이것이 내가 본 가장 전통적인 접근 방식이므로 이것이 실패하는 이유를 이해할 수 없습니다.
답변1
먼저 UPDATE 문에 테이블뿐만 아니라 데이터베이스도 지정해야 합니다.
UPDATE mysql.user ...
그렇지 않으면 MySQL은 작업 중인 데이터베이스를 알 수 없습니다(따라서 오류가 발생함).
그러나 이는 MySQL에서 사용자 비밀번호를 변경하는 올바른 방법이 아닙니다. mysql
데이터베이스(데이터베이스 메타데이터 포함)를 조작하는 것은 권장되지 않습니다 . 대신 이렇게 하세요:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NEWPASSWORD_CAME_HERE');
답변2
오류를 해결하려면:
use mysql
그러나 mysql 참조 매뉴얼을 살펴보아야 합니다:
ALTER USER user IDENTIFIED BY 'auth_string';