>  기사  >  데이터 베이스  >  mysql은 루트 비밀번호를 잊어버렸습니다

mysql은 루트 비밀번호를 잊어버렸습니다

WBOY
WBOY원래의
2023-05-12 10:59:06570검색

MySQL은 웹 애플리케이션을 구축하고 데이터를 관리하는 데 자주 사용되는 일반적으로 사용되는 관계형 데이터베이스 관리 시스템입니다. MySQL에서 루트 사용자는 가장 높은 권한을 가진 사용자이며 일반적으로 전체 데이터베이스를 관리하는 데 사용됩니다. 그러나 어떤 경우에는 루트 사용자의 비밀번호를 잊어버릴 수도 있습니다. 이 문서에서는 MySQL 루트 사용자 비밀번호를 재설정하는 몇 가지 일반적인 방법을 소개합니다.

  1. mysqld_safe를 사용하여 MySQL 시작

루트 사용자의 비밀번호를 잊어버린 경우 가장 먼저 시도해야 할 방법은 mysqld_safe를 사용하여 MySQL 서비스를 시작하는 것입니다. 이 방법을 사용하면 비밀번호 없이 MySQL을 시작할 수 있으며 루트 사용자의 비밀번호를 변경할 수 있습니다. 단계는 다음과 같습니다.

먼저 MySQL 서비스를 중지합니다.

$ sudo systemctl stop mysql

그런 다음 mysqld_safe를 사용하여 MySQL 서비스를 시작하고 --skip-grant-tables를 지정합니다.

$ sudo mysqld_safe --skip-grant-tables &

--skip-grant-tables 매개변수를 사용하면 MySQL이 액세스 제어 목록을 무시하게 됩니다. 즉, 누구나 루트 권한으로 MySQL 서버에 연결할 수 있습니다. 따라서 신뢰할 수 있는 사용자만 서버에 액세스할 수 있도록 해야 합니다.

다음으로, 다른 터미널 창에서 MySQL 서버에 접속하세요.

$ mysql -u root

MySQL 프롬프트에서 다음 명령을 실행하여 루트 사용자의 비밀번호를 변경합니다.

mysql> UPDATE mysql.user SET 인증_string=PASSWORD('new_password') WHERE User='root';

이 명령에서 new_password를 새 비밀번호로 바꾸세요.

마지막으로 MySQL을 종료하고 MySQL 서비스를 다시 시작하세요.

mysql> FLUSH PRIVILEGES;
mysql> quit;
$ sudo systemctl start mysql

이제 새 비밀번호를 사용하여 루트 사용자로 로그인할 수 있습니다!

  1. mysql_secure_installation 스크립트 사용

mysqld_safe를 사용하여 MySQL을 시작할 수 없는 경우 mysql_secure_installation 스크립트를 사용하여 루트 사용자의 비밀번호를 재설정해 볼 수도 있습니다. 이 스크립트는 루트 사용자의 비밀번호 재설정, 익명 사용자 삭제, 원격 로그인 비활성화 등을 포함하여 MySQL에 대한 일부 설정을 신속하게 수행할 수 있습니다.

먼저 다음 명령을 실행하여 mysql_secure_installation 스크립트를 설치하세요.

$ sudo apt-get update
$ sudo apt-get install mysql-server

설치가 완료된 후 다음 명령을 사용하여 mysql_secure_installation 스크립트를 실행할 수 있습니다.

$ sudo mysql_secure_installation

실행 프로세스 중에 루트 사용자 비밀번호 설정, 익명 사용자 삭제 등을 포함한 여러 질문에 답해야 합니다. 비밀번호를 설정할 때 루트 사용자의 원래 비밀번호를 잊어버린 경우에도 해당 비밀번호를 비워 두고 새 비밀번호를 설정하도록 선택할 수 있습니다. 모든 설정이 완료되면 새 비밀번호를 사용하여 루트로 로그인할 수 있습니다.

  1. skip-grant-tables 매개변수를 사용하여 MySQL을 시작하세요

위의 두 가지 방법 중 어느 것도 작동하지 않으면 마지막 시도는 Skip-grant-tables 매개변수를 사용하여 MySQL을 시작하는 것입니다. 이 방법을 사용하면 MySQL을 시작할 수 있지만 데이터베이스가 취약한 상태가 되므로 프로덕션 환경에서는 사용하면 안 됩니다.

먼저 MySQL 구성 파일 my.cnf 또는 my.ini를 찾으세요. 파일에는 다음 줄이 포함되어야 합니다.

[mysqld]
skip-grant-tables

파일이 없으면 새 파일을 만들고 위의 두 줄을 파일에 추가한 후 my.log로 저장하면 됩니다. cnf 또는 my.ini.

그런 다음 다음 명령을 사용하여 MySQL을 다시 시작하세요.

$ sudo systemctl restart mysql

다시 시작한 후에는 비밀번호를 입력하지 않고도 MySQL에 루트 사용자로 로그인할 수 있습니다. MySQL 프롬프트에서 다음 명령을 입력하여 루트 사용자의 비밀번호를 변경합니다.

mysql> UPDATE mysql.user SET 인증_string=PASSWORD('new_password') WHERE User='root';

new_password를 새 비밀번호로 바꾼 다음 MySQL을 종료하고 MySQL 서비스를 다시 시작하세요.

mysql> FLUSH PRIVILEGES;
mysql> quit;
$ sudo systemctl restart mysql

이제 새 비밀번호를 사용하여 루트 사용자로 로그인할 수 있습니다!

요약

MySQL 루트 사용자 비밀번호를 잊어버리는 것은 일반적인 문제이지만 이를 해결하는 방법에는 여러 가지가 있습니다. 대부분의 경우 mysqld_safe 또는 mysql_secure_installation 스크립트를 사용하면 비밀번호를 쉽게 재설정할 수 있습니다. 이러한 방법이 작동하지 않는 경우 Skip-grant-tables 매개변수를 사용하여 MySQL을 시작하는 것이 최후의 수단일 수 있지만 프로덕션 환경에서는 권장되지 않습니다.

위 내용은 mysql은 루트 비밀번호를 잊어버렸습니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.