windows 에서 my sql 의 루트 비밀 번 호 를 초기 화 하 는 방법 소개

오늘 은 WordPress 가 데이터 베 이 스 를 연결 하지 못 하고 window server 서버 에 로그 인하 여 모든 서비스 가 정상적으로 작 동 하 는 것 을 발견 하 였 습 니 다.
루트 계 정 을 사용 하여 mysql 데이터베이스 에 로그 인 한 결과 비밀번호 가 일치 하지 않 음 을 알 립 니 다.나 는 서버 가 SQL 주입 공격 을 받 았 을 지도 모른다 는 것 을 갑자기 깨 달 았 다.
사고 가 발생 한 원인 과 그 후에 한 보완 조치 에 대해 서 는 나중에 기회 가 있 으 면 말씀 드 리 겠 습 니 다.여기 서 mysql 사용자 비밀번호 리 셋 절 차 를 말씀 드 리 겠 습 니 다.
루트 비밀번호 초기 화
루트 비밀 번 호 를 잊 어 버 린 상태 에서 my sql 보안 모드 에 들 어가 루트 비밀 번 호 를 초기 화 할 수 있 습 니 다.
1.MySQL 서비스 중지
명령 프롬프트 창 을 열 고 net stop my sql 을 입력 하여 MySQL 서 비 스 를 닫 습 니 다.

C:\Users\Administrator>net stop mysql57
MySQL57       ..
MySQL57        。
↑서비스 이름 이 모두 my sql 인 것 은 아 닙 니 다.예 를 들 어 제 가 my sql 57,57 대표 버 전 번 호 는 5.7 입 니 다.
물론 컴퓨터 관리 패 널 을 통 해 MySQL 서 비 스 를 닫 을 수도 있 습 니 다.

2.빈 디 렉 터 리 로 전환
명령 프롬프트 창 에서 cd 명령 을 통 해 my sql 설치 디 렉 터 리 의 bin 디 렉 터 리 로 전환 합 니 다.

C:\Users\Administrator>
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
C:\Program Files\MySQL\MySQL Server 5.7\bin>
↑기본 설치 디 렉 터 리 는 C:\Program Files\\MySQL\\MySQL Server
3.안전 모드 진입
빈 디 렉 터 리 에 입력mysqld --skip-grant-tables 하고 권한 검 사 를 건 너 뛰 어 my sql 을 시작 합 니 다.
my.ini 파일 을 설정 했다 면 가 져 와 야 합 니 다:mysqld --defaults-file="../my.ini" --skip-grant-tables

[mysqld]

basedir = "C:\ProgramData\MySQL\MySQL Server 5.7"
datadir = "C:\ProgramData\MySQL\MySQL Server 5.7\Data"
↑나 는 my.ini 파일 에 데이터 저장 경 로 를 지정 했다.설정 파일 을 도입 하지 않 으 면 No such file or directory 오 류 를 알려 줄 것 이다.
4.계 정 비밀번호 초기 화
다른 명령 프롬프트 창 을 엽 니 다(보안 모드 창 을 닫 지 마 십시오).mysql\bin 디 렉 터 리 로 전환 하고 mysql 건 너 뛰 기 권한 검증 연결 데이터 베 이 스 를 입력 하 십시오.

C:\Program Files\MySQL\MySQL Server 5.7\bin>mysql
Server version: 5.7.16 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
↑연결 매개 변수 mysql-u<사용자 이름>-p<비밀번호>-h<연결 주소>-P<포트 번호>-D<데이터베이스>지정 가능
업데이트 mysql.user set 인증 실행string="" where user="root"; 루트 사용자 의 암 호 를 초기 화 합 니 다(5.7 이전 에는 password 필드).

mysql> update mysql.user set authentication_string="" where user="root";
Query OK, 1 row affected (0.00 sec)

mysql> select user,authentication_string from mysql.user\G
*************************** 1. row ***************************
         user: root
authentication_string:
*************************** 2. row ***************************
         user: mysql.sys
authentication_string: *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

2 rows in set (0.00 sec)
↑root 사용자 의 authenticationstring 필드 가 비어 있 습 니 다.
5.권한 표 새로 고침
flush 권한 실행 하기;명령 새로 고침 권한 표,비밀번호 초기 화 완료,quit 입력 종료.

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
mysql> quit
Bye
모든 명령 프롬프트 창 을 닫 고 작업 관리 자 를 통 해 my sqld.exe 프로 세 스 를 끝 냅 니 다.MySQL 서 비 스 를 다시 시작 하면 루트 계 정 에 바로 로그 인 할 수 있 습 니 다.
루트 비밀번호 수정
보안 상 루트 비밀 번 호 는 비어 있 으 면 안 되 므 로 비밀 번 호 를 리 셋 한 후 비밀 번 호 를 다시 설정 해 야 합 니 다.
방법 1:SET PASSWORDSET PASSWORD FOR "username"=PASSWORD("new password");루트 로 my sql 에 로그 인 한 다음 set password 명령 으로 암 호 를 수정 합 니 다:

mysql> set password for root@localhost = password("pswd");
Query OK, 0 rows affected, 1 warning (0.00 sec)
방법 2:my sqladminmysqladmin -u "username" -p password "new password"이 이름 을 실행 하면 원래 암 호 를 입력 하 라 고 알려 주 고 정확 한 입력 을 하면 수정 할 수 있 습 니 다.

C:\Program Files\MySQL\MySQL Server 5.7\bin> mysqladmin -u root -p password pswd
Enter password: ****

mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
방법 3:UPDATE TABLEUPDATE mysql.user SET authentication_string=PASSWORD("new password") WHERE user="username";
루트 암 호 를 초기 화 하 는 동시에 기본 암 호 를 설정 할 수 있 습 니 다.그러나 비밀 번 호 는 명문 으로 할 수 없고 password()함수 로 암호 화해 야 합 니 다.

mysql> update mysql.user set authentication_string=password("pswd") where user="root";
Query OK, 1 row affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
총결산
이상 은 windows 에서 my sql 의 루트 비밀 번 호 를 리 셋 하 는 방법 에 대한 모든 내용 입 니 다.도움 이 되 기 를 바 랍 니 다.관심 이 있 는 친 구 는 본 사 이 트 를 계속 참고 할 수 있 습 니 다.
MySQL 데이터베이스 디자인 의 Python 을 이용 하여 Schema 를 조작 하 는 방법 에 대한 상세 한 설명
my sql 에서 인 스 턴 트 를 사용 하여 모호 한 조회 방법 을 소개 합 니 다.
MySQL 에서 or 구문 용법 예제
부족 한 점 이 있 으 면 댓 글로 지적 해 주세요.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기