>  기사  >  데이터 베이스  >  리눅스 mysql에서 루트 비밀번호를 잊어버렸습니다.

리눅스 mysql에서 루트 비밀번호를 잊어버렸습니다.

王林
王林원래의
2023-05-23 10:02:362388검색

Linux MySQL은 루트 비밀번호를 잊었습니다

Linux 시스템을 사용하고 MySQL 데이터베이스를 설치할 때 일반적으로 루트 사용자를 관리자로 생성합니다. 그러나 때로는 루트 사용자의 비밀번호를 잊어버리거나 루트 사용자로 로그인할 수 없는 등의 상황이 발생할 수 있습니다. 이러한 상황은 데이터베이스에 대한 액세스, 유지 관리 및 백업이 불가능하게 되어 비즈니스에 영향을 미칠 수 있습니다. 따라서 이 기사에서는 MySQL 루트 비밀번호를 재설정하는 데 도움이 되는 몇 가지 솔루션을 소개합니다.

방법 1: mysqladmin 명령줄 도구 사용

mysqladmin 명령줄 도구는 MySQL에서 일반적으로 사용되는 도구로 일부 MySQL 관리 작업을 수행하는 데 사용할 수 있습니다. 이를 사용하여 루트 사용자의 비밀번호를 재설정할 수 있습니다.

  1. 먼저 MySQL 서비스를 중지하고 MySQL 데이터베이스를 닫아야 합니다.
sudo systemctl stop mysql
  1. 그런 다음 sudo 권한을 사용하여 MySQL 서비스 관리 명령을 실행하고 인증 인증을 건너뛰어 로그인할 수 없는 것을 방지해야 합니다. :
sudo mysqld_safe --skip-grant-tables &
  1. 다음으로 MySQL 명령줄을 입력해야 합니다.
sudo mysql -u root
  1. 이제 MySQL 명령줄을 입력하고 다음 명령을 입력합니다. (참고: 새 비밀번호는 실제 비밀번호에 따라 설정해야 합니다. 상황):
UPDATE mysql.user SET authentication_string=PASSWORD('new_password') WHERE User='root';
  1. 방금 설정한 비밀번호를 적용하려면 권한을 새로 고쳐야 합니다.
FLUSH PRIVILEGES;
  1. 마지막으로 MySQL 명령줄을 종료하고 MySQL 서비스를 중지한 후 서비스를 다시 시작합니다.
exit
sudo systemctl stop mysql
sudo systemctl start mysql

이 시점에서 MySQL 루트 비밀번호를 성공적으로 재설정했습니다. 새 비밀번호를 사용하여 MySQL에 다시 로그인할 수 있습니다.

방법 2: mysql_secure_installation 스크립트 사용

mysql_secure_installation 스크립트는 MySQL에서 제공하는 설치 도구로 익명 사용자 제거, 외부 루트 로그인 끄기, 테스트 데이터베이스 삭제 등을 포함하여 MySQL 보안 설정을 대화형으로 수행합니다. 또한 루트 사용자의 비밀번호를 재설정하는 데 사용할 수도 있습니다.

  1. Sudo 권한으로 스크립트를 실행해야 합니다.
sudo mysql_secure_installation
  1. 스크립트를 실행하는 동안 몇 가지 문제에 직면하게 됩니다. 첫째, 익명 사용자를 제거할 수 있는 옵션이 제공됩니다. 사용자를 익명으로 유지하려면 아니요를 선택합니다. 그렇지 않으면 예를 선택합니다.
  2. 다음으로 새로운 루트 사용자 비밀번호를 설정하겠습니다. 새로운 비밀번호를 입력하고 확인하세요.
  3. 그런 다음 스크립트를 통해 루트 사용자가 원격으로 로그인하는 것을 비활성화할지 여부를 선택할 수 있습니다. 원격 로그인을 허용하려면 아니요를 선택하세요. 그렇지 않으면 예를 선택합니다.
  4. 마지막으로 스크립트는 테스트 데이터베이스를 삭제할지 묻습니다. 테스트 데이터베이스를 계속 사용하려면 아니요를 선택합니다. 그렇지 않으면 예를 선택하여 테스트 데이터베이스를 삭제합니다.

이제 mysql_secure_installation 스크립트를 사용하여 MySQL 루트 비밀번호를 성공적으로 재설정하고 일부 보안 설정을 지정했습니다. 새 비밀번호를 사용하여 MySQL에 다시 로그인할 수 있습니다.

방법 3: 데이터베이스 파일에서 비밀번호 복구

위의 두 가지 방법이 작동하지 않으면 데이터베이스 파일에서 비밀번호를 복구해 볼 수 있습니다. 그러나 이 방법에는 데이터 손실이 발생하거나 데이터베이스 구조가 손상될 수 있는 특정 위험이 있습니다. 따라서 주의해서 진행하고 데이터베이스를 백업했는지 확인해야 합니다.

  1. MySQL 서비스를 중지하고 데이터베이스 파일을 백업하세요.
sudo systemctl stop mysql
sudo cp -a /var/lib/mysql /var/lib/mysql.bak
  1. MySQL 구성 파일을 편집하고 다음 줄을 추가하세요.
skip-grant-tables
sudo nano /etc/mysql/my.cnf

저장하고 종료하세요.

  1. 이제 sudo 권한이 있는 사용자로 MySQL 서비스를 시작해야 합니다.
sudo mysqld_safe &
  1. 그런 다음 다음 명령을 사용하여 MySQL 명령줄을 입력할 수 있습니다.
sudo mysql -u root
  1. 그런 다음 확인해야 합니다. MySQL 데이터베이스 테이블을 복구합니다.
mysql> use mysql;
mysql> repair table user;
mysql> exit
  1. 이 시점에서 MySQL 명령줄을 성공적으로 입력했습니다. 다음 명령을 사용하여 루트 사용자 비밀번호를 재설정할 수 있습니다(참고: 실제 상황에 따라 새 비밀번호를 설정해야 함).
mysql> UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit
  1. 마지막으로 MySQL 서비스를 중지하고 수정한 구성 파일을 복원해야 합니다. 이전:
sudo nano /etc/mysql/my.cnf

skip-grant-tables 줄을 제거하고 저장한 후 종료하세요.

sudo systemctl stop mysql
sudo systemctl start mysql

이 시점에서 우리는 데이터베이스 파일에서 MySQL 루트 비밀번호를 성공적으로 복구했습니다. 새 비밀번호를 사용하여 MySQL에 다시 로그인할 수 있습니다.

요약

Linux MySQL 데이터베이스를 사용할 때 루트 비밀번호를 잊어버렸거나 로그인할 수 없는 경우 위의 세 가지 방법을 사용하여 비밀번호를 재설정할 수 있습니다. 그러나 이러한 방법에는 특정 위험이 있습니다. 데이터베이스를 백업하고 주의해서 작동하십시오. 또한 데이터베이스 보안을 강화하기 위해 강력한 비밀번호를 설정하고 정기적으로 비밀번호를 변경하는 것이 좋습니다.

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

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