티스토리 뷰

DataBase

[MySQL] 비밀번호 초기화

메성 2020. 4. 2. 02:43
반응형

비밀번호 초기화

  • 비밀번호 변경
//MySQL 8.0.15 이상
update mysql.user set authentication_string='변경 비밀번호' where user='root';

 

 

  • 권한 적용
flush privileges;

 

 

  • 다시 접속하면 아래와 같은 오류 메시지가 나타나는 경우가 있다.
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

 

 

  • 위 오류 메시지는 비밀번호가 틀렸다고 예상할 수 있는데.. 방금 변경했는데 왜 틀렸다고 나올까? 계정 테이블을 확인해보자.
select authentication_string from user;
  • 확인 결과, 비밀번호가 변경되었지만, 해쉬화가 되지 않아 암호화되지 않고 그대로 저장되어 있는 것을 볼 수 있다.
  • 이를 해결해보자

 

 

비밀번호 초기화 해결방법

  1. MySQL을 멈춘다.

    sudo /usr/local/mysql/support-files/mysql.server stop
  2. MySQL 서버 승인을 생략하는 옵션을 추가하여 시작한다.

    sudo /usr/local/mysql/support-files/mysql.server start --skip-grant-tables
  3. Root 유저로 MySQL에 접속한다.

    cd /usr/local/mysql/bin
    ./mysql -u root
  4. mysql 데이터베이스를 사용한다.

    use mysql;
  5. root 유저 비밀번호를 NULL로 변경한다.

    update mysql.user set authentication_string=null where user='root';
    • null로 변경하는 이유는 MySQL 서버를 정상적으로 다시 실행했을 때(승인 생략 옵션 없이) 비밀번호 없이 바로 접속하기 위함이다.
  6. 변견된 권한을 설정한다.

    flush privileges;
  7. MySQL을 나간다.

    exit
  8. MySQL을 다시 접속한다.

    ./mysql -u root
    ./mysql -u root -p
    • 비밀번호가 설정되어 있지 않으니 아무거나 입력해도 접속가능하다.
  9. 비밀번호를 변경한다.

    update mysql.user set authentication_string=n'1234' where user='root';
    • 비밀번호 변경 후 다시 user테이블에 authentication_string 컬럼을 조회하면 해쉬화가 된 것을 확인할 수 있을 것이다. 'select authentication_string from user;'
  10. 비밀번호가 정상적으로 변경되었으면, MySQL을 나간 후 변경된 비밀번호로 접속하자.

반응형

'DataBase' 카테고리의 다른 글

[MySQL] MMM MHA  (0) 2020.04.15
[MySQL] Repication  (0) 2020.04.15
[MySQL] Adaptive Hash Index  (0) 2020.04.01
[MySQL] 트랜잭션과 ACID  (0) 2020.04.01
[MySQL] MyISAM vs InnoDB  (0) 2020.02.17
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함