MySQL의 루트 암호를 잊었다! 때의 대처법(Windows)

머리



평소부터 사용하고 있으면 좋지만 가끔 생각나는 것처럼 사용하기 때문에
그때마다 root 패스워드를 잊어 MySQL에 로그인할 수 없다.
그런 나 같은 사람을 위한 것인지 나를 위한 기사입니다.

환경 등


  • Windows 10(64bit)
  • MySQL 5.7
  • 서비스에서 실행

  • 명령 줄에서 mysql --version를 입력하면
    이런 식으로 당신의 버전이 표시됩니다.

    mysql Ver 14.14 Distrib 5.7.17, for Win64 (x86_64)

    서비스에서 움직이는 MySQL의 숨 뿌리를 멈추십시오.





    서비스 관리자를 시작하고
    MySQL을 마우스 오른쪽 버튼으로 클릭하고 중지를 선택하면 중지됩니다.

    커맨드 라인이라면


    net stop MySQL57
    

    이 방법으로도 좋습니다.

    비밀번호없이 사용 가능한 모드로 MySQL 시작



    명령 프롬프트를 관리자 권한으로 실행.
    기본은이 명령으로 실행할 수 있습니다 (그러나)
    mysqld --skip-grant-tables
    

    mysqld: Can't change dir to 'C:\Program Files\MySQL\MySQL Server 5.7\data\' (Errcode: 2 - No such file or directory)

    설치시 설정 괴롭히면 이런 느낌으로 작동하지 않는 것도
    나는 이 파틴이었다.

    서비스 속성 확인



    서비스 관리자 MySQL을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
    여기에서 런타임에 지정하고 있는 인수 등을 확인할 수 있으므로 그것을 팩해온다.



    뒤의 서비스명 MySQL57 는 필요없다.

    MySQL 시작


    "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 5.7\my.ini" --skip-grant-tables
    

    패스는 각자 읽어주세요.
    이것을 실행하면 명령 프롬프트는 반응이 돌아오지 않게 되지만, 그것으로 좋다.
    뒤에서 MySQL이 움직이고 있는 상태가 된다.

    root 비밀번호 변경



    새로운 명령 프롬프트를 시작하여 mysql에 액세스.
    mysql -u root mysql
    

    이제 mysql database를 지정한 상태로 넣을 것입니다.

    Update SQL에서 user 테이블의 내용 업데이트


    mysql > update user set authentication_string =PASSWORD('新しいパスワード') where user = 'root'
    mysql > FLUSH PRIVILEGES;
    mysql > exit;
    

    공식 페이지에서는 Password 컬럼을 갱신하게 되어 있었지만
    MySQL5.7에는 그런 열이 없었습니다.authentication_string 가 정답입니다.

    명령을 실행하여 MySQL에서 빠져 나가면 명령 프롬프트를 닫습니다.

    후처리



    또 하나 열려 있던 명령 프롬프트도 닫습니다.
    그냥 MySQL이 뒤에서 실행 된 상태로 남아 있기 때문에
    작업 관리자를 열고 mysqld.exe를 강제 종료합니다.

    나중에 평소처럼 서비스에서 MySQL을 시작하고 명령 프롬프트에서
    mysql -u root -p
    

    Enter Password:

    재설정한 비밀번호로 MySQL에 넣어야 합니다.

    좋은 웹페이지 즐겨찾기