본문 바로가기
개발자의 개발개발한 하루

[MariaDB(MySQL)] 패스워드 분실 시 해결 방법 및 비밀번호 재설정 for Window

by ju니어 2021. 7. 27.
728x90
반응형

 

0. MariaDB(MySQL)창을 킨다. 비밀번호를 모른다면 로그인이 실패 되는 것이 맞다. 끄지 말고 놔둔다.

 

1. 작업관리자 내 백그라운드 프로세스에서  mysql.d가 실행중인지 확인하고, 실행중이면 작업 끝내기를 누른다.

 

2. 1번의 화면에서, dir를 통해 mysqld.exe파일이 있는 디렉토리인지 확인 후

mysqld.exe --skip-grant 를 입력한다.

밑에 경고창이 있는데, 앞으로는 skip-grant-tables로 풀네임으로 사용하라고 한다.

 

3. 2번에서 진행한 cmd창을 놔둔 채로, 새로운 cmd창을 연다. 새로운 cmd에서 mysql.exe가 있는 디렉토리로 이동해서, mysql.exe를 입력한다. 

- 엔터를 치면 접속이 된다. 만약 접속이 안되면 다시 sqld 켜져있는지 확인하고, 1번과 2번의 과정을 다시 진행한다.

 

4. mysql 에서 아래 명령어 차례대로 실행

MariaDB 10.4 이상일 경우 

ERROR 1356 (HY000): View 'mysql.user' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them

에러가 떠서, 코드를 바꿨다.

 

Flush Privileges란?

환경 설정을 변경할경우, MariaDB(MySQL)의 재시작 없이 변경한 설정부분을 적용시키고자 할 때 사용

 

---- MariaDB 10.4 미만일 경우

use mysql; 
Flush Privileges; # 앞의 --skip -grant 끄기 위함
UPDATE user SET password=PASSWORD('[변경할 PassWord]') where user='root'; 
Flush Privileges; # 비밀번호 적용 위함
quit(or Ctrl+C)



---- MariaDB 10.4 이상일 경우

use mysql; 
Flush Privileges; # 앞의 --skip -grant 끄기 위함
set password for 'root'@'localhost'=password('[변경할 PassWord]');
Flush Privileges; # 비밀번호 적용 위함
quit(or Ctrl+C)

 

 

다 끄고 새창 열어서 변경한 비밀번호로 접속하면 접속이 된다.

 

MariaDB 10.4 부터는 더이상 root 계정 암호를 입력 하지 않아도 된다고 한다. root 계정으로 MariaDB(MySQL) client를 실행 했을 경우에만 암호가 없이 동작을 하는데, 일반 유저로 root 연결이 필요 없을 시 root 암호를 지정하지 않아도 된다.

 

 

 

참고 블로그 : https://my.oops.org/195

반응형

댓글