MySQL 사용자 이름과 비밀번호를 가져오려면 어떻게 해야 합니까?
MySQL 사용자 이름과 비밀번호를 잃어버렸습니다.어떻게 회수하죠?
MySQL 프로세스를 중지합니다.
--skip-grant-tables 옵션을 사용하여 MySQL 프로세스를 시작합니다.
-u 루트 옵션을 사용하여 MySQL 콘솔 클라이언트를 시작합니다.
모든 사용자를 나열합니다.
SELECT * FROM mysql.user;
패스워드 리셋
UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
단, 잊지 마세요
MySQL 프로세스 중지
MySQL 프로세스를 정상적으로 시작합니다(즉, --skip-grant-tables 옵션 없음).
다 읽으시면요.그렇지 않으면 데이터베이스의 보안이 손상될 수 있습니다.
안타깝게도 사용자 비밀번호는 복구할 수 없습니다.단방향 해시로 해시되어 있습니다.모르면 되돌릴 수 없습니다.위의 Xenph Yan을 사용하여 새로운 것을 작성할 것을 권장합니다.
매뉴얼에서 다음 절차를 사용하여 Windows에서 MySQL 루트 계정의 암호를 재설정할 수도 있습니다.
- Administrator 로 시스템에 로그인합니다.
- MySQL 서버가 실행 중인 경우 중지합니다.Windows 서비스로 실행되고 있는 서버의 경우는, 다음의 서비스 매니저로 이동합니다.
[시작] 메뉴 -> [컨트롤 패널]-> [관리도구]-> [서비스]
그런 다음 목록에서 MySQL 서비스를 찾은 후 중지합니다.서버가 서비스로 실행되고 있지 않은 경우 태스크 관리자를 사용하여 서버를 강제로 중지해야 할 수 있습니다.
텍스트 파일을 만들고 그 안에 다음 문을 넣습니다.암호를 사용할 암호로 바꿉니다.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root'; FLUSH PRIVILEGES;
UPDATE 및 FLUSH 문장은 각각 한 줄에 작성해야 합니다.UPDATE 문은 기존의 모든 루트계정의 비밀번호를 리셋하고 FLUSH 문은 서버에 인가 테이블을 메모리에 새로고침하도록 지시합니다.
- 파일을 저장합니다.이 예에서는 파일 이름은 C:\mysql-init 입니다.txt를 클릭합니다.
콘솔 창을 열고 명령 프롬프트를 표시합니다.
[시작] 메뉴 -> [파일명을 지정하여 실행]-> cmd
특별한 --init-file 옵션을 사용하여 MySQL 서버를 시작합니다.
C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
MySQL을 C:\mysql 이외의 장소에 인스톨 했을 경우는, 커맨드를 적절히 조정합니다.
서버는 부팅 시 --init-file 옵션에 의해 명명된 파일의 내용을 실행하여 각 루트 계정의 비밀번호를 변경합니다.
서버 출력을 로그 파일이 아닌 콘솔 창에 표시하려면 --console 옵션을 명령에 추가할 수도 있습니다.
MySQL Installation Wizard를 사용하여 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 설정은 Services Manager를 사용하여 확인할 수 있습니다.
[시작] 메뉴 -> [컨트롤 패널]-> [관리도구]-> [서비스]
목록에서 MySQL 서비스를 찾아 마우스 오른쪽 버튼으로 클릭하고 속성 옵션을 선택합니다.실행 파일의 경로 필드에는 --defaults-file 설정이 있습니다.
- 서버가 정상적으로 기동하면, C:\mysql-init 를 삭제합니다.txt를 클릭합니다.
- MySQL 서버를 중지한 다음 일반 모드에서 다시 시작합니다.서버를 서비스로 실행하는 경우 Windows Services 창에서 시작합니다.서버를 수동으로 기동하는 경우는, 통상 사용하는 커맨드를 사용합니다.
이제 새 암호를 사용하여 루트로 MySQL에 연결할 수 있습니다.
가장 유용한 답변에 대한 개선점:
server 1] mysql을 가 없습니다.
2)의 보안에 우려2) MySQL
MySQL 서버를 재시작할 필요가 없습니다.
FLUSH PRIVILEGES;
「mysql.user」는 「mysql.user」입니다.
FLUSH 스테이트먼트는 서버에 패스워드 변경을 인식할 수 있도록 허가 테이블을 메모리에 새로고침하도록 지시합니다.
--skip-grant-options
를 사용하면 모든 사용자가 패스워드 없이 모든 권한을 사용하여 접속할 수 있습니다.하지 않기 「」라고 하는 도 모릅니다.
리모트 클라이언트의 접속을 막기 위해 --syslog-networking과 --syslog-syslog를 함께 사용합니다.
발신인: 레퍼런스: 리셋 권한 리셋
다운타임 없이 실행
터미널에서 다음 명령을 실행하여 DBMS에 연결합니다(루트 액세스 필요).
sudo mysql -u root -p;
예: 사용자 은 "run update password"(영어: "run update password")입니다.mousavi
는 반드시 '' 합니다123456
):
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';
이 시점에서 변경을 적용하려면 플러시를 수행해야 합니다.
FLUSH PRIVILEGES;
완료! mysql 서비스를 중지 또는 재시작하지 않고 완료했습니다.
MySQL 암호를 직접 복구하려면 브루트 포스를 사용해야 하지만 MySQL Workbench를 사용하여 데이터베이스에 연결하고 자격 증명을 "볼트"에 저장해야 합니다.
Windows 에서는 자격 정보가 %APPDA에 저장됩니다.TA%\MySQL\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;
}
또는 이 DontionCoder 스레드에서 빠르고 더러운 구현의 소스 + 실행 파일을 확인할 수 있습니다.
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 사용자 이름 -p
비밀번호 입력:****
그런 다음 다음 명령을 실행합니다.
mysql> SELECT * FROM mysql.user;
그 후, 대응하는 유저의 암호화된 md5 패스워드를 카피하고, Web상에서 복수의 온라인 패스워드의 복호화 애플리케이션을 사용할 수 있게 됩니다.이 암호 해독을 사용하여 다음 번 로그인 시 사용합니다.또는 flowing 명령을 사용하여 사용자 암호를 업데이트합니다.
mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
그런 다음 새 암호와 사용자를 사용하여 로그인합니다.
ODBC가 설정되어 있는 경우 ODBC 구성 파일에서 암호를 얻을 수 있습니다.이것은 Linux 의 /etc/odbc.ini 와 Windows 의 레지스트리의 Software/ODBC 폴더에 있습니다(몇 개 있습니다. 헌팅이 좀 걸릴 수 있습니다).
파일을 저장합니다.이 예에서는 파일 이름은 C:\mysql-init 입니다.txt. 파일 저장에 대한 관리 권한을 요청합니다.
MySQL 5.7.6 및 MariaDB 10.1.20(현재 2022년) 이후에는 다음을 수행할 수 있습니다.
루트 사용자에 대한 액세스 권한이 있는 mysql 사용자 암호 업데이트
ALTER USER 'some_user_name'@'localhost' IDENTIFIED BY 'a_super_secure_password';
mysql 루트 사용자 업데이트
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';
모든 사용자 나열
select user from mysql.user;
op의 질문에 대한 엄밀하고 논리적이고 컴퓨터 공학적인 해석은 "How do I retrieve MySQL username"과 "password"를 모두 요구하는 것이지만, OR 해석에 대응하는 것도 누군가에게 도움이 될 것이라고 생각했습니다.다른 말로...
1) MySQL 사용자 이름을 가져오려면 어떻게 해야 합니까?
또는
2) 패스워드
이 후자의 조건은 이미 충분히 대응한 것 같기 때문에, 저는 신경 쓰지 않습니다.다음은 "How do i retreve MySQL username" 단독의 해결책입니다.HIH.
mysql 사용자 이름을 찾으려면 mysql 셸에서 다음 명령을 수행합니다.
사용자 FROM mysql.user;
모든 mysql 사용자의 표를 출력합니다.
언급URL : https://stackoverflow.com/questions/4371/how-do-i-retrieve-my-mysql-username-and-password
'programing' 카테고리의 다른 글
JSON 인코딩 MySQL 결과 (0) | 2022.10.11 |
---|---|
Google Compute Engine VM에서 MySQL에 원격 연결 (0) | 2022.10.11 |
PHP에서 Microsoft로 인코딩된 따옴표를 대체하는 방법 (0) | 2022.10.11 |
Twig에서 배열 설정 요소 (0) | 2022.10.11 |
MariaDB 홈브루 설치 오류 (0) | 2022.10.11 |