Ubuntu에서 MySQL 루트 암호 재설정

Mehvish Ashiq 2023년6월20일
  1. Ubuntu에서 잊어버린 MySQL root 암호 재설정
  2. mysql_secure_installation을 사용하여 MySQL root 비밀번호 설정 오류 수정
Ubuntu에서 MySQL 루트 암호 재설정

이 자습서에서는 Ubuntu에서 MySQL root 암호를 재설정해야 하는 두 가지 시나리오를 고려합니다. 첫째, root 비밀번호를 잊어버렸고 재설정하고 싶을 때; 둘째, mysql_secure_installation으로 root 암호를 설정할 수 없는 경우입니다.

이 튜토리얼에 제공된 지침은 MySQL 버전 8.0.29Ubuntu 20.04.4를 사용하여 테스트되었습니다. 아래의 두 시나리오에 대한 솔루션을 살펴보겠습니다.

Note
MySQL이 수퍼유저 또는 루트 권한으로 액세스할 수 있는 다른 방법으로 실행 중인 Ubuntu 20.04.4 서버에 액세스할 수 있어야 합니다.

Ubuntu에서 잊어버린 MySQL root 암호 재설정

데이터베이스에 대해 강력한 암호를 유지하는 것은 옳지만 기억하기 어려울 수 있습니다. MySQL root 암호를 잊은 경우 어떻게 합니까?

공포에 질리지 말 것! 우리 중 많은 사람들이 이 문제에 직면하지만 업데이트할 수 있는 방법이 있습니다.

  1. 다음 명령을 사용하여 MySQL 버전을 확인합니다.

    $ mysql --version
    
  2. MySQL 서버를 종료합니다.

    이러한 방식으로 root 암호를 재설정하기 위해 안전 모드에서 쉽게 다시 시작할 수 있습니다. 시스템의 루트 비밀번호를 입력해야 합니다. 여기서는 우분투입니다.

  3. 테이블 권한 없이 MySQL 서버를 시작하려면 다음 명령을 사용하여 systemd 구성 파일을 업데이트하여 시작 시 MySQL 서버에 추가 명령줄 매개 변수를 전달합니다.

    sudo systemctl edit mysql
    

    Enter를 누르는 즉시 nano 편집기를 사용하여 파일이 열립니다. 이를 사용하여 MySQL의 서비스 재정의를 편집합니다.

    이러한 방식으로 MySQL의 기본 서비스 매개변수를 업데이트할 수 있습니다.

    nano 편집기에서 방금 연 빈 파일에 다음을 추가합니다.

    [Service]
    ExecStart=
    ExecStart=/usr/sbin/mysqld --skip-grant-tables --skip-networking
    

    위에 제공된 내용을 파일에 붙여넣은 후 Ctrl+X를 눌러 파일을 종료하고 Y를 눌러 방금 만든 업데이트를 저장합니다. , Enter를 눌러 파일 이름을 확인합니다.

    여기에서 ExecStart는 먼저 모든 기본값을 지운 다음 systemd에 다른 매개변수를 포함하는 새 시작 명령을 제공합니다. 이 매개변수는 네트워킹 및 승인 테이블 로드를 비활성화합니다.

  4. 업데이트를 적용하려면 다음 명령을 실행하여 systemd 구성을 다시 로드합니다.

    sudo systemctl daemon-reload
    
  1. 다음 명령을 사용하여 MySQL 서버를 시작합니다. 출력을 생성하지 않지만 MySQL 서버의 상태를 확인할 수 있습니다.

    sudo systemctl start mysql
    

    이번에는 네트워킹 및 그랜트 테이블이 활성화되지 않습니다.

  2. 루트 사용자로 데이터베이스에 연결합니다.

    sudo mysql -u root
    
  3. 이제 암호를 변경할 수 있지만 그 전에 다음 명령을 사용하여 데이터베이스 서버에 그랜트 테이블을 다시 로드하도록 지시하십시오.

    mysql> FLUSH PRIVILEGES;
    
  4. 아래 명령문을 실행하여 MySQL root 사용자의 암호를 재설정합니다. my_new_password를 쉽게 기억할 수 있는 강력한 암호로 바꾸는 것을 잊지 마십시오.

    ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'my_new_password';
    

    여기에서 MySQL을 사용하면 사용자 지정 인증을 사용할 수 있습니다. 따라서 위에 주어진 명령문은 MySQL이 이제 기본 인증을 사용하여 새 암호를 통해 MySQL root 사용자를 인증하도록 합니다.

    브라보! 이제 MySQL root 사용자의 암호가 변경되었습니다. exit를 입력하여 MySQL 셸을 종료합니다.

  5. 다음 명령을 실행하여 MySQL 서버를 일반 설정으로 되돌립니다.

    sudo systemctl revert mysql
    

    위의 명령문이 성공적으로 실행되었음을 의미하는 다음 출력과 유사하게 표시됩니다.

    Removed /etc/systemd/system/mysql.service.d/override.conf.
    Removed /etc/systemd/system/mysql.service.d.
    
  6. 변경 사항을 적용하려면 systemd 구성을 다시 로드하십시오.

    sudo systemctl daemon-reload
    
  1. 다음과 같이 MySQL 서버를 다시 시작합니다.

    sudo systemctl restart mysql
    
  2. 이제 다음 명령문을 실행하여 새 암호를 사용하여 MySQL root 사용자로 로그인합니다.

    mysql -u root -p
    

    MySQL root 사용자 비밀번호를 입력하라는 메시지가 표시됩니다. 새 암호를 입력하고 데이터베이스 서버에 대한 액세스를 즐기십시오.

mysql_secure_installation을 사용하여 MySQL root 비밀번호 설정 오류 수정

MySQL 서버를 처음 설치하는 사용자는 mysql_secure_installation으로 MySQL root 암호를 설정하는 동안 생성되는 다음 오류를 만났을 수 있습니다.

Failed! Error: SET PASSWORD has no significance for user 'root'@'localhost' as the authentication method used doesn't store authentication data in the MySQL server. Please consider using ALTER USER instead if you want to change authentication parameters.

괜찮아요! 여기에 대한 해결책이 있습니다.

  1. mysql_secure_installation 프로세스를 종료하거나 터미널을 닫습니다.

  2. 다음 명령문을 사용하여 MySQL 서버에 로그인합니다.

    sudo mysql
    

    시스템의 root 암호를 입력하라는 메시지가 표시됩니다. 암호를 입력하면 MySQL 콘솔로 이동합니다.

  3. 다음 ALTER 문을 실행합니다. my_new_password를 비밀번호로 바꾸는 것을 잊지 마십시오.

    mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'my_new_password';
    

    또한 exit를 입력하여 MySQL 셸을 종료합니다.

  4. 아래 명령문을 사용하여 새 비밀번호로 로그인합니다.

    mysql -u root -p
    

    마지막으로 루트 사용자로 MySQL 서버에 로그인할 수 있습니다.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

관련 문장 - MySQL Root