inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Tạo máy chủ đầu tiên của bạn bằng Java và Spring Boot Bất kỳ ai cũng có thể dễ dàng chuyển từ giai đoạn phát triển sang triển khai! [Gói phát triển máy chủ tất cả trong một]

Video chuẩn bị bài giảng - Cách đầu tiên để bắt đầu dự án Spring

mysql 비밀번호 재설정

Đã giải quyết

16184

dkfvktorco

5 câu hỏi đã được viết

1

 https://goodteacher.tistory.com/291

 

위 블로그를 참고해서 비밀번호를 초기화했는데

mysql -u root -p
Enter password: ************
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

위와 같이 나옵니다. 위 에러 메시지는 비밀번호를 잘못입력했을 때 나오는 걸로 아는데

저 한영 잘못친 것도 없고 numlock도 풀려있어서 제대로 잘 입력했는데 왜 그럴까요ㅠ

 

mysql --version 해보면 mysql ver8.0.27 로 잘 나옵니다

spring-boot mysql spring JPA jpa java aws

Câu trả lời 2

1

1026999

에러 메시지가 'Access denied for user 'root'@'localhost' (using password: YES)' 이라면 입력한 비밀번호가 틀렸다는 의미입니다. 아마도 비밀번호 초기화 과정에서 무언가 잘못 입력하거나 저장하지 않아서 발생한 문제일 수도 있습니다.

비밀번호를 초기화할 때 다음과 같은 절차를 따르셨는지 확인해보세요.

  1. MySQL 서버를 정지합니다.

  2. 다음 명령을 실행하여 MySQL을 권한 없이 실행합니다.

    sudo mysqld_safe --skip-grant-tables
    
  3. 다른 터미널 창을 열고 MySQL을 실행합니다.

    mysql -u root
    
  4. 다음 명령을 실행하여 MySQL에서 비밀번호를 재설정합니다.

     UPDATE mysql.user SET authentication_string=password('새로운비밀번호') WHERE user='root' AND Host = 'localhost';
     FLUSH PRIVILEGES;
    
  5. MySQL 서버를 정상적으로 시작합니다.

    sudo systemctl start mysql
    
  6. 다시 로그인하여 새로운 비밀번호가 잘 적용되었는지 확인합니다.

     mysql -u root -p

0

dkfvktorco

관리자모드로 cmd 들어가서 mysqld_safe --skip-grant-tables 했는데

 

C:\Program Files\MySQL\MySQL Server 8.0\bin>mysqld_sage --skip-grant-tables

'mysqld_sage'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는

배치 파일이 아닙니다.

 

라고 나옵니다ㅠ

cmd 들어가서 경로를 mysql 설치되어있는 경로로 옮겨서도 해봤는데 같은 메시지가 나와요..


  1. mysql을 종료시키고

  2. cmd를 관리자권한으로 들어가서

  3. mysql 설치 경로로 옮긴 후

  4. mysqld.exe --skip-grant-tables --console --shared-memory

  5. 다른 cmd 창을 관리자권한으로 들어가서

  6. (말씀해주신 UPDATE문은 SQL syntax 에러가 나옵니다) use mysql;

  7. UPDATE user SET authentication_string=null WHERE User='root';

  8. select authentication_string from user;

  9. flush privileges;

  10. 나가기 위해 exit

  11. 재접속을 위해 mysql

  12. ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '새로 설정할 비밀번호';

하면 된다고 하는데 전 안됐습니다..

0

1026999

에러 메시지에는 mysqld_sage이라고 나와서 mysqld_safe를 실행시키지 못하고 있는 것 같습니다. mysqld_sage 대신 mysqld_safe를 실행해 보세요.

또한, UPDATE문에 문법 오류가 있다면 MySQL 버전에 따라서 쿼리 문법이 달라질 수 있습니다. 다음과 같이 새로운 비밀번호를 지정하는 방법으로 시도해 보세요.

ALTER USER 'root'@'localhost' IDENTIFIED BY '새로운비밀번호';

위 명령어는 MySQL 5.7 이상에서 사용할 수 있는 문법입니다. MySQL 5.7 이하 버전에서는 다음과 같이 사용합니다.

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('새로운비밀번호');

비밀번호 초기화 과정에서 무언가 잘못 입력하거나 저장하지 않은 것으로 추정됩니다. 초기화 절차를 다시 확인해보시고, 새로운 비밀번호를 설정하는 방법을 정확히 입력해 보세요.

0

dkfvktorco

Q1. alter문으로 비밀번호를 변경할 때 affected row가 0으로 나오면 안되는 거겠죠?

Q2. authentication_string = null로 만들고 나서 exit 하고 다시 use mysql 한 후select authentication_string from user; 했는데 null값이었던 곳에 무언가가 적혀져 있는데 이건 왜 그런 걸까요?

Q3. mysqld.exe --skip-grant-tables --console --shared-memory 후 새로운 cmd창을 관리자 모드로 열어 mysql -u root로 접속한 다음 ALTER USER 'root'@'localhost' IDENTIFIED BY '++++'; 를 입력하면 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 라고 나옵니다.

Q4. 비밀번호를 바꾼 후 해당 cmd 창에서 exit로 나간 후 mysql -u root -p로 변경한 비밀번호롤 통해 접속하면 들어가지는데 해당 cmd 창을 닫고 새로운 cmd창을 열어 실행하면 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 라 나옵니다. 관리자모드로 열어도 똑같은 에러메시지가 나와요.

 

계속 비슷한 질문을 들여 번거롭게 한 것 같아 죄송합니다. 맞게 했다고 생각되는데 계속 안되네요 mysql을 재설치하는 것도 괜찮은 방법일까요? 😥

0

dkfvktorco

재설치하고 성공했습니다!!!!!!!!!!!!!!!! 답변해주셔서 감사합니다 :)

0

lannstark

안녕하세요, 1026999님!! 대신 답변해주셔서 고개 숙여 감사드립니다!! 🙏🙏

 

은혜님도 해결하셔서 정말 다행이네요!! 😊

이미 지난 사안이지만, 도움이 될 수 있을까 하여 마지막 질문 남겨주신 부분들에 대해 답변 드려보겠습니다!!

 

Q1. alter문으로 비밀번호를 변경할 때 affected row가 0으로 나오면 안되는 거겠죠?

넵넵!! affected row 0으로 나오면 설정이 적용된 값이 0개라는 의미로 잘 적용되지 않았다는 의미입니다!

 

Q2. authentication_string = null로 만들고 나서 exit 하고 다시 use mysql 한 후select authentication_string from user; 했는데 null값이었던 곳에 무언가가 적혀져 있는데 이건 왜 그런 걸까요?

아마 null 자체를 문자열로 인식했고, 비밀번호를 저장할 때 암호화되어 저장하느라 null이 아닌 무언가가 적혀있는 걸거에요!!

Q3. mysqld.exe --skip-grant-tables --console --shared-memory 후 새로운 cmd창을 관리자 모드로 열어 mysql -u root로 접속한 다음 ALTER USER 'root'@'localhost' IDENTIFIED BY '++++'; 를 입력하면 ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement 라고 나옵니다.

MySQL 서버가 현재 Table의 GRANT (권한 관리) 기능이 제외된 채로 실행되어 그렇습니다!

mysql.exe --skip-grant-tables로 하실 때 넣은 --skip-grant-tables 가 권한 관리 기능 제외 옵션이고, 사용하신 ALTER USER ... SQL이 권한 관리 기능이라 해당 기능을 사용할 수 없었던 것으로 생각됩니다.

Q4. 비밀번호를 바꾼 후 해당 cmd 창에서 exit로 나간 후 mysql -u root -p로 변경한 비밀번호롤 통해 접속하면 들어가지는데 해당 cmd 창을 닫고 새로운 cmd창을 열어 실행하면 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 라 나옵니다. 관리자모드로 열어도 똑같은 에러메시지가 나와요.

비밀번호가 틀려서 그러실것으로 생각됩니다! 🥺 혹은 비밀번호를 바꾸셨다고 생각했지만, Q1과 같은 이유로 정상 적용되지 않은 것일 수도 있습니다.

재설치를 통해 해결하셨다니 정말 다행입니다!

감사합니다! 🙏

패키지 구분에 대해 궁금한게 있습니다

0

12

1

리액트 관련 질문이 있습니다.

0

63

2

스프링부트 버전

0

69

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

57

2

33강. UserLoanHistory의 관계성에 대한 질문

1

54

2

Java JDK 버전 문의의 건

0

131

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

84

3

h2 console 접속했을 테이블 질문

1

63

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

73

2

15강. updateUser() 질문

0

54

2

깃허브 질

0

80

2

여기까지 다 끝냈다고 하셨는데

0

77

2

왜안될까요

0

68

2

MySQL 창이안ㄴ뜹니다

0

57

2

포스트맨

0

48

1

spring 개념적인 질문

0

70

2

인텔리제이 샘플코드 실행 안됨 오류

0

138

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

81

1

마이그레이션 오류입니다.

0

169

3

Whitelabel Error Page 오류가 났습니다.

0

161

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

89

3

궁금한게 있습니다.

0

56

2

DTO 관련

0

68

2

궁금한게 있습니다!

0

64

2