답변:
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 옵션없이)
당신이 끝나면. 그렇지 않으면 데이터베이스의 보안이 손상 될 수 있습니다.
dpkg-reconfigure mysql-server-5.5
루트 MySQL 암호를 재설정하기 위해 명령을 사용하는 것의 중요성은 무엇입니까 ?
-u
server가 시작될 때 무시되므로 전혀 그렇게 할 필요가 없습니다 --skip-grant-tables
.
mysql.user
라고 password
, 사용 authentication_string
대신.
불행히도 사용자 비밀번호는 검색 할 수 없습니다. 모르는 경우 되돌릴 수없는 단방향 해시로 해시되었습니다. 위의 Xenph Yan과 함께 새로운 것을 만드십시오.
Windows에서 MySQL 루트 계정 의 비밀번호를 재설정하기 위해 매뉴얼 에서 다음 절차를 사용할 수도 있습니다 .
시작 메뉴-> 제어판-> 관리 도구-> 서비스
그런 다음 목록에서 MySQL 서비스를 찾아 중지하십시오. 서버가 서비스로 실행되고 있지 않으면 작업 관리자를 사용하여 강제로 중지해야 할 수도 있습니다.
텍스트 파일을 작성하고 다음 명령문을 배치하십시오. 비밀번호를 사용하려는 비밀번호로 바꾸십시오.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
UPDATE 및 FLUSH 문 각각 한 줄에 작성해야합니다. UPDATE의 문은 기존의 모든 루트 계정에 대한 암호를 다시 설정하고, 플러시 문은 메모리에 그랜트 테이블을 다시로드 할 수있는 서버를 알려줍니다.
콘솔 창을 열어 명령 프롬프트를 표시하십시오.
시작 메뉴-> 실행-> cmd
특수한 --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이 있습니다. 설정이 .
이제 새 비밀번호를 사용하여 루트로 MySQL에 연결할 수 있습니다.
mysqld-nt
대신에 mysqld
?
가장 유용한 답변이 여기에 개선되었습니다.
1] mysql 서버를 다시 시작할 필요가 없습니다.
2] 네트워크에 연결된 MySQL 서버의 보안 문제
MySQL 서버를 다시 시작할 필요가 없습니다.
사용 FLUSH PRIVILEGES;
암호 변경에 대한 업데이트 mysql 데이터베이스에서 user 문 뒤에.
FLUSH 문은 서버에게 암호 변경을 알 수 있도록 권한 부여 테이블을 메모리에 다시로드하도록 지시합니다.
는 --skip-grant-options
암호없이 모든 권한과 연결하는 사람을 할 수 있습니다. 이것은 안전하지 않기 때문에
원격 클라이언트의 연결을 방지 하려면 --skip-grant-tables 를 --skip-networking 과 함께 사용하십시오 .
from : 참조 : 재설정 권한-일반
mysql.user
않습니까? 그러나 종종 그렇지 않습니다.
무차별 공격없이 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]';
그런 다음 새 비밀번호와 사용자를 사용하여 로그인하십시오.
파일을 저장하십시오. 이 예에서 파일 이름은 C : \ mysql-init.txt입니다. 파일을 저장하기위한 관리 권한을 요구합니다.
op의 질문에 대한 엄격하고 논리적 인 컴퓨터 과학적 해석은 "MySQL 사용자 이름을 검색하는 방법" 과 "암호"를 모두 요구 하는 것이지만 OR을 해결하는 것이 누군가에게 유용 할 것이라고 생각했습니다. 해석을 . 다시 말해 ...
1) MySQL 사용자 이름을 어떻게 검색합니까?
또는
2) 비밀번호
이 후자의 상태는 이미 충분히 해결 된 것으로 보이므로 이에 신경 쓰지 않을 것입니다. 다음은 "MySQL 사용자 이름을 어떻게 검색합니까?"에 대한 해결책입니다. HIH.
mysql 사용자 이름을 찾으려면 mysql 쉘에서 다음 명령을 실행하십시오 ...
mysql.user에서 사용자 선택;
모든 MySQL 사용자의 테이블을 인쇄합니다.