MySQL 루트 비밀번호 찾기 및 재설정 방법 (Linux 및 Windows 가이드)

1. 소개

MySQL은 많은 웹 애플리케이션과 데이터베이스 시스템에서 필수적인 도구입니다. 그러나 운영 중에 “비밀번호를 잊어버렸다”거나 “초기 비밀번호를 모른다”는 상황에 직면하는 경우가 드물지 않습니다. 이러한 문제는 작업 흐름과 데이터베이스 보안에 큰 영향을 미칠 수 있습니다.

이 문서에서는 초보자도 따라 할 수 있도록 MySQL 초기 비밀번호를 확인하는 방법과 비밀번호를 잊어버렸을 때 재설정하는 방법을 자세히 설명합니다. 또한 Linux와 Windows 모두에 대한 절차를 제공하므로 자신의 환경에 맞는 단계를 따라 할 수 있습니다.

문서 후반부에서는 비밀번호 정책 설정을 확인·변경하는 방법과 일반적인 오류 처리 방법도 다룹니다. 이를 통해 MySQL을 보다 안전하고 효율적으로 운영하는 데 필요한 포괄적인 이해를 얻을 수 있습니다.

이 문서를 읽으면 다음 내용을 이해하고 실천할 수 있게 됩니다:

  • MySQL 초기 비밀번호 확인 방법
  • 비밀번호를 잊어버렸을 때 재설정 방법 (Linux 및 Windows 모두)
  • 문제 해결 및 비밀번호 정책 설정 방법

끝까지 읽고 MySQL을 자신 있게 사용할 수 있는 환경을 구축해 보세요.

2. MySQL 초기 비밀번호 확인 방법

MySQL을 처음 설치하면 기본적으로 초기(임시) 비밀번호가 설정됩니다. 이 초기 비밀번호를 찾으면 첫 로그인 및 비밀번호 변경 과정이 훨씬 원활해집니다. 이 섹션에서는 Linux와 Windows에서 초기 비밀번호를 확인하는 구체적인 방법을 설명합니다.

2.1 Linux에서 초기 비밀번호 확인 방법

Linux에서는 MySQL 설치 후 생성된 로그 파일을 확인하여 초기 비밀번호를 확인할 수 있습니다. 아래 단계를 따라 주세요.

단계:

  1. 터미널을 엽니다.
  2. 다음 명령을 실행하여 로그 파일 내용을 확인합니다.
    sudo cat /var/log/mysqld.log | grep 'temporary password'
    
  1. 명령 출력에 “temporary password”라는 텍스트와 함께 초기 비밀번호가 표시됩니다.
  • 예시: 2025-01-19T10:45:32.123456Z 1 [Note] A temporary password is generated for root@localhost: Abc12345!
  • 이 경우 Abc12345!가 초기 비밀번호입니다.
  1. 초기 비밀번호를 적어 두고 MySQL에 로그인할 때 사용합니다.

주의 사항:

  • 초기 비밀번호는 보안을 위해 무작위로 생성됩니다.
  • 첫 로그인 후에는 비밀번호를 변경해야 하므로 새 비밀번호를 반드시 설정하십시오.

2.2 Windows에서 초기 비밀번호 확인 방법

Windows에서는 초기 MySQL 설정 중 생성된 로그 파일이나 설치 화면에서 초기 비밀번호를 확인할 수 있습니다. 아래 단계를 참고하세요.

단계:

  1. MySQL이 설치된 디렉터리를 엽니다.
  • 기본 경로는 보통 다음과 같습니다: C:\ProgramData\MySQL\MySQL Server X.X\Logs *X.X는 MySQL 버전 번호를 나타냅니다.
  1. mysqld.log 파일을 찾습니다.
  2. 메모장이나 기타 텍스트 편집기로 로그 파일을 엽니다.
  3. 파일 내에서 “temporary password”라는 키워드를 검색합니다.
  • 초기 비밀번호는 “root@localhost”와 함께 표시됩니다.
  1. 초기 비밀번호를 적어 두고 MySQL에 로그인할 때 사용합니다.

추가 참고:

  • 설치 프로그램에 따라 초기 비밀번호가 설치 중 화면에 표시될 수 있습니다. 이 경우 스크린샷을 저장해 두는 것이 좋습니다.

3. 비밀번호를 잊어버렸을 때 대처 방법

MySQL 비밀번호를 잊어버렸더라도 몇 가지 방법으로 재설정할 수 있습니다. 이 섹션에서는 Linux와 Windows 모두에 대한 비밀번호 재설정 절차를 설명합니다. 두 방법 모두 관리자 권한이 필요하므로 관리자 권한으로 작업을 진행하십시오.

3.1 Linux에서 비밀번호 재설정 방법

Linux에서는 --skip-grant-tables 옵션을 사용해 MySQL을 안전 모드로 시작하고 새 비밀번호를 설정하는 것이 일반적인 접근 방식입니다.

단계:

  1. MySQL 서비스를 중지 다음 명령을 실행하여 MySQL 서비스를 중지합니다.
    sudo systemctl stop mysqld
    
  1. 안전 모드에서 MySQL 시작 안전 모드에서는 사용자 인증이 건너뛰어 비밀번호 없이 MySQL에 접근할 수 있습니다. 다음 명령을 실행하십시오.
    sudo mysqld_safe --skip-grant-tables &
    
  1. MySQL에 로그인 안전 모드에서 시작한 후, 다음 명령으로 MySQL에 로그인합니다.
    mysql -u root
    
  1. 새 비밀번호 설정 다음 SQL 명령을 실행하여 새 비밀번호를 설정합니다.
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
    

*NewPassword123!를 적절한 새 비밀번호로 교체하십시오.

  1. 서비스 재시작 비밀번호를 설정한 후, MySQL 서비스를 정상 모드로 재시작합니다.
    sudo systemctl stop mysqld
    sudo systemctl start mysqld
    
  1. 새 비밀번호로 로그인 확인 설정한 새 비밀번호로 MySQL에 로그인할 수 있는지 확인합니다.

3.2 Windows에서 비밀번호 재설정 방법

Windows에서는 --init-file 옵션으로 MySQL을 시작하여 비밀번호를 재설정할 수 있습니다.

단계:

  1. MySQL 서비스 중지 서비스 관리자를 열고 “MySQL 서비스”를 중지합니다.
  2. 재설정을 위한 SQL 파일 생성 텍스트 편집기를 사용하여 SQL 파일(예: reset_password.sql)을 만들고 아래 내용을 넣어 적절한 디렉터리에 저장합니다.
    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
    

*NewPassword123!를 사용하려는 새 비밀번호로 교체하십시오.

  1. --init-file 옵션으로 MySQL 시작 관리자 권한으로 명령 프롬프트를 열고 다음 명령을 실행합니다.
       mysqld --init-file="C:\path    o
    eset_password.sql"
    

*C:\path o eset_password.sql를 SQL 파일을 저장한 실제 경로로 교체하십시오.

  1. 서비스 재시작 정상 모드에서 MySQL을 재시작합니다. 서비스 관리자를 통해 서비스를 다시 시작하거나 다음 명령을 실행하십시오.
    net start mysql
    
  1. 새 비밀번호로 로그인 확인 설정한 새 비밀번호로 MySQL에 로그인할 수 있는지 확인합니다.

4. 비밀번호 정책 확인 및 구성

MySQL은 비밀번호 보안을 강화하기 위해 “비밀번호 정책” 기능을 제공합니다. 이를 통해 최소 복잡도와 길이와 같은 요구 사항을 강제할 수 있습니다. 여기에서는 현재 정책을 확인하고 필요에 따라 설정을 변경하는 방법을 설명합니다.

4.1 비밀번호 정책 확인 방법

현재 비밀번호 정책을 확인하려면 validate_password 플러그인을 사용합니다. 이 플러그인이 활성화되어 있으면 MySQL은 설정된 정책에 따라 비밀번호를 검증합니다.

단계:

  1. MySQL에 로그인합니다.
    mysql -u root -p
    
  1. 현재 정책 설정을 확인하려면 다음 명령을 실행합니다.
    SHOW VARIABLES LIKE 'validate_password%';
    
  1. 출력에는 다음과 같은 구성 항목이 표시됩니다. * validate_password.policy : 비밀번호 정책 강도 수준

    • 0 (LOW): 문자와 숫자만 허용
    • 1 (MEDIUM): 문자, 숫자 및 특수 문자를 요구
    • 2 (STRONG): 문자, 숫자, 특수 문자, 대문자 및 소문자를 요구
    • validate_password.length : 최소 비밀번호 길이
    • validate_password.mixed_case_count : 대소문자 혼합 최소 개수
    • validate_password.number_count : 최소 숫자 개수
    • validate_password.special_char_count : 최소 특수 문자 개수

4.2 비밀번호 정책 설정 변경

필요에 따라 비밀번호 정책을 완화하거나 강화할 수 있습니다. 아래에 예시를 보여드립니다.

정책 설정을 변경하는 단계:

  1. MySQL에 로그인합니다.
    mysql -u root -p
    
  1. 현재 설정을 변경하는 SQL 명령을 실행합니다. 예시 1: 정책 완화 (LOW 수준으로 변경)
    SET GLOBAL validate_password.policy = 0;
    SET GLOBAL validate_password.length = 8;
    

예시 2: 정책 강화 (STRONG 수준으로 변경)

SET GLOBAL validate_password.policy = 2;
SET GLOBAL validate_password.length = 12;
SET GLOBAL validate_password.special_char_count = 2;
  1. 설정이 적용되었는지 확인하십시오.
    SHOW VARIABLES LIKE 'validate_password%';
    

노트:

  • MySQL을 재시작한 후에도 설정을 유지하려면 my.cnf 또는 my.ini에 추가하는 것이 권장됩니다.
  • 예시:
    [mysqld]
    validate_password.policy=1
    validate_password.length=10
    

4.3 설정 변경 시 고려사항

  • 보안과 사용성의 균형 비밀번호 정책을 강화하면 보안이 향상되지만 비밀번호 관리가 복잡해질 수 있습니다. 초보자가 많은 환경에서는 필요 이상으로 엄격한 정책을 피해야 합니다.
  • 운영 영향 기존 사용자가 새로운 정책을 충족하지 못하면 변경 후 비밀번호를 업데이트하려 할 때 오류가 발생합니다. 정책을 변경하기 전에 영향을 받는 범위를 확인하십시오.
  • 비밀번호 재사용 방지 운영 환경에서는 이전에 사용한 비밀번호의 재사용을 방지하는 기능을 활성화하는 것을 고려하십시오.

5. 문제 해결

비밀번호를 확인하거나 재설정할 때 예상치 못한 오류가 발생할 수 있습니다. 이 섹션에서는 일반적인 사례와 해결 방법을 자세히 설명합니다.

5.1 일반 오류 및 원인

오류 1: 권한 오류 (사용자 접근 거부)

  • 원인 : 로그인 시 제공된 사용자 이름이나 비밀번호가 올바르지 않거나, 사용자가 필요한 권한을 가지고 있지 않을 때 발생합니다.
  • 해결책 :
  1. 올바른 사용자 이름과 비밀번호를 사용하고 있는지 확인하십시오.
  2. root 사용자로 로그인하거나 관리자에게 권한을 확인하도록 요청하십시오.
  3. 필요하다면 MySQL을 안전 모드(--skip-grant-tables)로 시작하고 권한을 수정하십시오.

오류 2: MySQL 서비스가 시작되지 않음

  • 원인 : MySQL 설정 파일(my.cnf 또는 my.ini)에 오류가 있거나 디스크 공간이 부족할 때 발생할 수 있습니다.
  • 해결책 :
  1. MySQL 오류 로그 파일을 확인하십시오. wp:list /wp:list

    • Linux: /var/log/mysqld.log
    • Windows: C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log 2. 설정 파일에 오류가 있다면 수정하십시오—특히 새로 추가된 설정을 확인하세요. 3. 디스크 공간이 부족하면 불필요한 파일을 삭제하거나 저장 용량을 확장하십시오. 4. 수정 후 서비스를 재시작하십시오. bash sudo systemctl restart mysqld

오류 3: 비밀번호 변경이 적용되지 않음

  • 원인 : 비밀번호를 변경한 후 권한 테이블이 다시 로드되지 않았을 수 있습니다.
  • 해결책 :
  1. 비밀번호 변경 명령을 실행한 후 다음 명령으로 권한을 다시 로드하십시오. sql FLUSH PRIVILEGES;
  2. MySQL 서비스를 재시작하고 새 비밀번호로 로그인해 보십시오.

5.2 안전 모드 사용 복구

위의 해결책으로 문제가 해결되지 않으면 안전 모드를 사용하여 복구를 시도할 수 있습니다.

단계:

  1. MySQL 서비스를 중지하십시오.
    sudo systemctl stop mysqld
    
  1. MySQL을 안전 모드로 시작하십시오.
    sudo mysqld_safe --skip-grant-tables &
    
  1. 안전 모드에서 MySQL에 로그인하고 영향을 받은 사용자의 권한이나 비밀번호를 수정하십시오.
  2. 수정이 끝나면 안전 모드를 종료하고 MySQL을 정상 모드로 재시작하십시오.
    sudo systemctl restart mysqld
    

5.3 오류 로그를 효과적으로 활용하는 방법

MySQL 오류 로그는 문제 해결을 위한 가장 중요한 정보원 중 하나입니다. 아래 단계에 따라 로그를 검토하고 문제 해결에 활용하십시오.

단계:

  1. 오류 로그의 위치를 확인하십시오.
  • Linux(일반 경로): /var/log/mysqld.log
  • Windows: C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log
  1. 로그 파일을 표시하십시오.
    tail -n 100 /var/log/mysqld.log
    

*실시간으로 최신 오류를 모니터링하려면 -f 옵션을 추가할 수 있습니다.

tail -f /var/log/mysqld.log
  1. 로그 메시지를 읽고 오류 원인을 파악하십시오.

5.4 문제가 여전히 해결되지 않을 경우 대처 방법

  • 공식 문서 참조 MySQL의 공식 문서에는 버전별 상세한 문제 해결 정보가 포함되어 있습니다. MySQL 공식 문서
  • 지원 포럼 사용 커뮤니티 포럼이나 Stack Overflow에서 유사한 문제를 검색하여 솔루션을 찾으세요.
  • 전문가 상담 문제를 해결할 수 없다면 시스템 관리자나 MySQL 전문가에게 상담하세요.

6. 자주 묻는 질문

MySQL 비밀번호를 관리하거나 재설정하는 동안 다양한 질문이나 문제가 발생할 수 있습니다. 이 섹션에서는 독자들이 가질 수 있는 일반적인 질문을 예상하고 각 솔루션을 명확하게 설명하겠습니다.

Q1: 초기 비밀번호를 찾을 수 없을 때 어떻게 해야 하나요?

A1:
초기 MySQL 비밀번호를 찾을 수 없다면 다음 단계를 시도해 보세요.

  1. 로그 파일 다시 확인
  • Linux: /var/log/mysqld.log
  • Windows: C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log 초기 비밀번호는 일반적으로 “temporary password”라는 텍스트와 함께 로그 파일에 기록되어 있습니다.
  1. 설치 프로그램 화면 확인 Windows에서 MySQL 설치 프로그램이 초기 비밀번호를 표시할 수 있습니다. 설치 직후 스크린샷을 저장했는지 확인하세요.
  2. 재설치 고려 여전히 초기 비밀번호를 찾을 수 없다면 MySQL을 제거하고 재설치하면 사용할 수 있는 새로운 초기 비밀번호가 생성될 수 있습니다.

Q2: 비밀번호를 재설정했는데도 로그인할 수 없는 이유는 무엇인가요?

A2:
비밀번호를 재설정했는데도 로그인이 안 된다면 다음 사항을 확인하세요:

  1. 사용자 이름과 호스트 확인
  • MySQL에서 사용자 이름과 호스트의 조합이 중요합니다 (예: 'root'@'localhost' ). '%' 를 사용하면 모든 호스트에서 액세스가 허용됩니다.
  • 사용자 목록 확인 명령: sql SELECT User, Host FROM mysql.user;
  1. 권한 테이블 재로드 잊음 비밀번호 재설정 후 권한을 재로드하지 않으면 새 비밀번호가 적용되지 않습니다. 다음 명령을 실행하세요.
    FLUSH PRIVILEGES;
    
  1. MySQL 서비스 재시작 비밀번호 재설정 후 MySQL 서비스를 재시작한 다음 다시 로그인해 보세요.
    sudo systemctl restart mysqld
    

Q3: 비밀번호 정책을 비활성화할 수 있나요?

A3:
비밀번호 정책을 비활성화할 수 있지만, 보안 위험이 증가하므로 신중히 고려하세요. 다음 단계를 사용하여 validate_password 플러그인을 비활성화할 수 있습니다.

  1. MySQL에 로그인하세요.
    mysql -u root -p
    
  1. 플러그인을 제거하는 명령을 실행하세요.
    UNINSTALL PLUGIN validate_password;
    
  1. 비활성화되었는지 확인하세요.
    SHOW PLUGINS;
    

참고:
이렇게 하면 약한 비밀번호가 허용되므로, 특히 프로덕션 환경에서는 다른 보안 조치를 강화하세요.

Q4: 비밀번호 재설정 중 오류가 발생하면 어떻게 해야 하나요?

A4:
재설정 중 오류를 처리하기 위한 지침으로 다음 단계를 사용하세요.

  1. 오류 메시지 확인
  • 상세 메시지를 검토하기 위해 오류 로그를 확인하세요. wp:list /wp:list

    • Linux: /var/log/mysqld.log
    • Windows: C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log
  1. 안전 모드에서 수정 오류가 지속되면 MySQL을 안전 모드( --skip-grant-tables )로 시작하여 문제가 되는 구성을 수정하세요.
  2. 기존 사용자 삭제 및 재생성 문제가 사용자 관련이라면 사용자를 삭제하고 재생성하는 것도 효과적일 수 있습니다.
    DROP USER 'root'@'localhost';
    CREATE USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
    

Q5: 비밀번호가 다른 관리자와 공유되어 있다면 변경 시 영향이 있나요?

A5:
여러 관리자가 있는 경우 비밀번호 변경은 다음과 같은 영향을 미칠 수 있습니다.

  1. 영향 범위 다른 관리자들의 시스템이나 스크립트가 이전 비밀번호를 사용하고 있다면 연결 오류가 발생합니다.
  2. 사전 알림 비밀번호를 변경하기 전에 다른 관리자에게 알리고, 필요에 따라 스크립트나 설정을 업데이트하도록 합니다.
  3. 변경 후 안전한 공유 변경 후에는 새로운 비밀번호를 안전하게 공유할 방법을 확보하세요(예: 암호화된 메신저 도구).

7. 요약

MySQL 비밀번호를 확인하고 재설정하는 것은 데이터베이스를 운영할 때 피할 수 없는 필수 작업 중 하나입니다. 이 글에서는 초기 비밀번호 찾는 방법부터 잊어버린 비밀번호 재설정, 비밀번호 정책 설정 및 문제 해결까지 전반을 포괄적으로 다루어 초보자도 실습에 따라 할 수 있도록 했습니다.

이 글의 주요 내용

  1. 초기 비밀번호 찾는 방법
  • Linux에서는 /var/log/mysqld.log 를 확인하고, Windows에서는 mysqld.log 파일을 확인하여 초기 비밀번호를 찾을 수 있습니다.
  1. 잊어버린 비밀번호 재설정 방법
  • 안전 모드와 --init-file 옵션을 활용한 Linux와 Windows 모두에 대한 재설정 절차를 다루었습니다.
  1. 비밀번호 정책 확인 및 설정
  • validate_password 플러그인을 사용해 환경에 맞는 정책을 설정하는 방법을 설명했습니다.
  1. 문제 해결
  • 권한 문제, 서비스 시작 오류 등 흔히 발생하는 오류에 대한 구체적인 대응 방법을 소개했습니다.
  1. 추가 설명을 위한 FAQ
  • 비밀번호 확인 및 재설정 과정에서 발생하는 일반적인 질문과 문제에 대한 답변을 제공했습니다.

독자를 위한 권장 사항

MySQL을 안전하고 효율적으로 운영하려면 다음 사항을 기억하세요.

  • 비밀번호를 철저히 관리 강력한 비밀번호를 설정하고 안전하게 보관하세요. 정기적인 비밀번호 변경은 보안을 더욱 강화합니다.
  • 오류 로그 활용 문제가 발생하면 원인을 파악하기 위해 오류 로그를 확인하는 습관을 들이세요.
  • 공식 문서 참고 MySQL 공식 자료는 최신 버전별 정보를 제공합니다. 필요에 따라 활용하세요.

다음 단계

이 글의 단계들을 따라 하면 기본적인 MySQL 비밀번호 관리와 문제 해결에 필요한 실무 능력을 습득했을 것입니다. 다음 단계로는 다음을 고려해 보세요:

  • 보안 추가 강화 방화벽 설정 및 SSL 연결 사용으로 전체 데이터베이스 보안을 향상시키세요.
  • 백업 작업 검토 정기적인 백업 일정을 수립해 데이터 손실 상황에 완벽히 대비하세요.

MySQL을 올바르게 관리하여 원활하고 문제 없는 운영을 이루세요. 이 글이 여러분에게 도움이 되길 바랍니다.