[mysql] MySQL 사용자 이름과 비밀번호를 어떻게 검색합니까?

MySQL 사용자 이름과 비밀번호를 잃어 버렸습니다. 어떻게 검색합니까?



답변

MySQL 프로세스를 중지하십시오.

–skip-grant-tables 옵션을 사용하여 MySQL 프로세스를 시작하십시오.

-u root 옵션을 사용하여 MySQL 콘솔 클라이언트를 시작하십시오.

모든 사용자를 나열하십시오.

SELECT * FROM mysql.user;

암호를 재설정;

UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';

그러나 잊지 마세요

MySQL 프로세스 중지

MySQL 프로세스를 정상적으로 시작하십시오 (즉 –skip-grant-tables 옵션없이)

당신이 끝나면. 그렇지 않으면 데이터베이스의 보안이 손상 될 수 있습니다.


답변

불행히도 사용자 비밀번호는 검색 할 수 없습니다. 모르는 경우 되돌릴 수없는 단방향 해시로 해시되었습니다. 위의 Xenph Yan과 함께 새로운 것을 만드십시오.

Windows에서 MySQL 루트 계정 의 비밀번호를 재설정하기 위해 매뉴얼 에서 다음 절차를 사용할 수도 있습니다 .

  1. 시스템에 관리자로 로그온하십시오.
  2. MySQL 서버가 실행 중이면 중지하십시오. Windows 서비스로 실행중인 서버의 경우 서비스 관리자로 이동하십시오.

시작 메뉴-> 제어판-> 관리 도구-> 서비스

그런 다음 목록에서 MySQL 서비스를 찾아 중지하십시오. 서버가 서비스로 실행되고 있지 않으면 작업 관리자를 사용하여 강제로 중지해야 할 수도 있습니다.

  1. 텍스트 파일을 작성하고 다음 명령문을 배치하십시오. 비밀번호를 사용하려는 비밀번호로 바꾸십시오.

    UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
    FLUSH PRIVILEGES;

    UPDATEFLUSH 문 각각 한 줄에 작성해야합니다. UPDATE의 문은 기존의 모든 루트 계정에 대한 암호를 다시 설정하고, 플러시 문은 메모리에 그랜트 테이블을 다시로드 할 수있는 서버를 알려줍니다.

  2. 파일을 저장하십시오. 이 예에서 파일 이름은 C : \ mysql-init.txt입니다.
  3. 콘솔 창을 열어 명령 프롬프트를 표시하십시오.

    시작 메뉴-> 실행-> cmd

  4. 특수한 –init-file 옵션을 사용하여 MySQL 서버를 시작하십시오 .

    C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt

    C : \ mysql 이외의 위치에 MySQL을 설치 한 경우 이에 따라 명령을 조정하십시오.

    서버 는 시작할 때 –init-file 옵션으로 이름이 지정된 파일의 내용을 실행하여 각 루트 계정 비밀번호를 변경 합니다.

    서버 출력을 로그 파일이 아닌 콘솔 창에 표시하려면 명령에 –console 옵션을 추가 할 수도 있습니다 .

    MySQL 설치 마법사를 사용하여 MySQL을 설치 한 경우 –defaults-file 옵션 을 지정해야합니다 .

    C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt

    적절한 –defaults-file 설정은 서비스 관리자를 사용하여 찾을 수 있습니다.

    시작 메뉴-> 제어판-> 관리 도구-> 서비스

    목록에서 MySQL 서비스를 찾아 마우스 오른쪽 단추로 클릭 한 후 속성 옵션을 선택하십시오. 실행 파일 경로 필드에는 –defaults-file이 있습니다. 설정이 .

  5. 서버가 성공적으로 시작되면 C : \ mysql-init.txt를 삭제 하십시오 .
  6. MySQL 서버를 중지 한 다음 일반 모드에서 다시 시작하십시오. 서버를 서비스로 실행하는 경우 Windows 서비스 창에서 서버를 시작하십시오. 서버를 수동으로 시작하는 경우 일반적으로 사용하는 명령을 사용하십시오.

이제 새 비밀번호를 사용하여 루트로 MySQL에 연결할 수 있습니다.


답변

가장 유용한 답변이 여기에 개선되었습니다.

1] mysql 서버를 다시 시작할 필요가 없습니다.
2] 네트워크에 연결된 MySQL 서버의 보안 문제

MySQL 서버를 다시 시작할 필요가 없습니다.

사용 FLUSH PRIVILEGES;암호 변경에 대한 업데이트 mysql 데이터베이스에서 user 문 뒤에.

FLUSH 문은 서버에게 암호 변경을 알 수 있도록 권한 부여 테이블을 메모리에 다시로드하도록 지시합니다.

--skip-grant-options암호없이 모든 권한과 연결하는 사람을 할 수 있습니다. 이것은 안전하지 않기 때문에

원격 클라이언트의 연결을 방지 하려면 –skip-grant-tables–skip-networking 과 함께 사용하십시오 .

from : 참조 : 재설정 권한-일반


답변

무차별 공격없이 MySQL 암호를 직접 복구 할 수는 없지만 다른 방법이있을 수 있습니다. MySQL Workbench를 사용하여 데이터베이스에 연결하고 자격 증명을 “vault”에 저장 한 경우 황금색입니다.

Windows에서 신임 정보는 % APPDATA % \ MySQL \ Workbench \ workbench_user_data.dat에 저장되며 추가 엔트로피없이 CryptProtectData로 암호화됩니다 . 해독은 쉽지 않습니다.

std::vector<unsigned char> decrypt(BYTE *input, size_t length) {
    DATA_BLOB inblob { length, input };
    DATA_BLOB outblob;

    if (!CryptUnprotectData(&inblob, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &outblob)) {
            throw std::runtime_error("Couldn't decrypt");
    }

    std::vector<unsigned char> output(length);
    memcpy(&output[0], outblob.pbData, outblob.cbData);

    return output;
}

또는이 DonationCoder 스레드 에서 빠르고 더러운 구현의 소스 + 실행 파일을 확인할 수 있습니다 .


답변

가동 중지 시간없이 수행

터미널에서 다음 명령을 실행하여 DBMS에 연결하십시오 (루트 액세스가 필요함).

sudo mysql -u root -p;

대상 사용자의 업데이트 비밀번호를 실행하십시오 (예를 들어 username은 is mousavi이고 비밀번호는이어야합니다 123456).

UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';  

이 시점에서 변경 사항을 적용하려면 플러시를 수행해야합니다.

FLUSH PRIVILEGES;

끝난! mysql 서비스를 중지하거나 다시 시작하지 않고 수행했습니다.


답변

mysql이 실행되는 서버에 대한 루트 액세스 권한이있는 경우이 명령을 사용하여 mysql 서버를 중지해야합니다.

sudo service mysql stop

이제이 명령을 사용하여 mysql을 시작하십시오.

sudo /usr/sbin/mysqld --skip-grant-tables  --skip-networking &

이제 다음을 사용하여 mysql에 로그인 할 수 있습니다

sudo mysql
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

전체 지침은 http://www.techmatterz.com/recover-mysql-root-password/ 에서 찾을 수 있습니다 .


답변

기존 사용자를 사용하여 Windows cmd에서 MySql에 로그인하십시오.

mysql -u username -p
비밀번호를 입력하십시오 : ****

그런 다음 다음 명령을 실행하십시오.

mysql> SELECT * FROM mysql.user;

그 후 해당 사용자의 암호화 된 md5 비밀번호를 복사하면 웹에서 사용할 수있는 몇 가지 온라인 비밀번호 복호화 애플리케이션이 있습니다. 이 암호 해독 암호를 사용하여 다음에 로그인 할 때이 암호를 사용하십시오. 또는 흐르는 명령을 사용하여 사용자 비밀번호를 업데이트하십시오.

mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';

그런 다음 새 비밀번호와 사용자를 사용하여 로그인하십시오.