1. 소개
MySQL은 많은 웹 애플리케이션과 데이터베이스 시스템에서 필수적인 도구입니다. 그러나 운영 중에 “비밀번호를 잊어버렸다”거나 “초기 비밀번호를 모른다”는 상황에 직면하는 경우가 드물지 않습니다. 이러한 문제는 작업 흐름과 데이터베이스 보안에 큰 영향을 미칠 수 있습니다.
이 문서에서는 초보자도 따라 할 수 있도록 MySQL 초기 비밀번호를 확인하는 방법과 비밀번호를 잊어버렸을 때 재설정하는 방법을 자세히 설명합니다. 또한 Linux와 Windows 모두에 대한 절차를 제공하므로 자신의 환경에 맞는 단계를 따라 할 수 있습니다.
문서 후반부에서는 비밀번호 정책 설정을 확인·변경하는 방법과 일반적인 오류 처리 방법도 다룹니다. 이를 통해 MySQL을 보다 안전하고 효율적으로 운영하는 데 필요한 포괄적인 이해를 얻을 수 있습니다.
이 문서를 읽으면 다음 내용을 이해하고 실천할 수 있게 됩니다:
- MySQL 초기 비밀번호 확인 방법
- 비밀번호를 잊어버렸을 때 재설정 방법 (Linux 및 Windows 모두)
- 문제 해결 및 비밀번호 정책 설정 방법
끝까지 읽고 MySQL을 자신 있게 사용할 수 있는 환경을 구축해 보세요.
2. MySQL 초기 비밀번호 확인 방법
MySQL을 처음 설치하면 기본적으로 초기(임시) 비밀번호가 설정됩니다. 이 초기 비밀번호를 찾으면 첫 로그인 및 비밀번호 변경 과정이 훨씬 원활해집니다. 이 섹션에서는 Linux와 Windows에서 초기 비밀번호를 확인하는 구체적인 방법을 설명합니다.
2.1 Linux에서 초기 비밀번호 확인 방법
Linux에서는 MySQL 설치 후 생성된 로그 파일을 확인하여 초기 비밀번호를 확인할 수 있습니다. 아래 단계를 따라 주세요.
단계:
- 터미널을 엽니다.
- 다음 명령을 실행하여 로그 파일 내용을 확인합니다.
sudo cat /var/log/mysqld.log | grep 'temporary password'
- 명령 출력에 “temporary password”라는 텍스트와 함께 초기 비밀번호가 표시됩니다.
- 예시:
2025-01-19T10:45:32.123456Z 1 [Note] A temporary password is generated for root@localhost: Abc12345! - 이 경우
Abc12345!가 초기 비밀번호입니다.
- 초기 비밀번호를 적어 두고 MySQL에 로그인할 때 사용합니다.
주의 사항:
- 초기 비밀번호는 보안을 위해 무작위로 생성됩니다.
- 첫 로그인 후에는 비밀번호를 변경해야 하므로 새 비밀번호를 반드시 설정하십시오.
2.2 Windows에서 초기 비밀번호 확인 방법
Windows에서는 초기 MySQL 설정 중 생성된 로그 파일이나 설치 화면에서 초기 비밀번호를 확인할 수 있습니다. 아래 단계를 참고하세요.
단계:
- MySQL이 설치된 디렉터리를 엽니다.
- 기본 경로는 보통 다음과 같습니다:
C:\ProgramData\MySQL\MySQL Server X.X\Logs*X.X는 MySQL 버전 번호를 나타냅니다.
mysqld.log파일을 찾습니다.- 메모장이나 기타 텍스트 편집기로 로그 파일을 엽니다.
- 파일 내에서 “temporary password”라는 키워드를 검색합니다.
- 초기 비밀번호는 “root@localhost”와 함께 표시됩니다.
- 초기 비밀번호를 적어 두고 MySQL에 로그인할 때 사용합니다.
추가 참고:
- 설치 프로그램에 따라 초기 비밀번호가 설치 중 화면에 표시될 수 있습니다. 이 경우 스크린샷을 저장해 두는 것이 좋습니다.
3. 비밀번호를 잊어버렸을 때 대처 방법
MySQL 비밀번호를 잊어버렸더라도 몇 가지 방법으로 재설정할 수 있습니다. 이 섹션에서는 Linux와 Windows 모두에 대한 비밀번호 재설정 절차를 설명합니다. 두 방법 모두 관리자 권한이 필요하므로 관리자 권한으로 작업을 진행하십시오.
3.1 Linux에서 비밀번호 재설정 방법
Linux에서는 --skip-grant-tables 옵션을 사용해 MySQL을 안전 모드로 시작하고 새 비밀번호를 설정하는 것이 일반적인 접근 방식입니다.
단계:
- MySQL 서비스를 중지 다음 명령을 실행하여 MySQL 서비스를 중지합니다.
sudo systemctl stop mysqld
- 안전 모드에서 MySQL 시작 안전 모드에서는 사용자 인증이 건너뛰어 비밀번호 없이 MySQL에 접근할 수 있습니다. 다음 명령을 실행하십시오.
sudo mysqld_safe --skip-grant-tables &
- MySQL에 로그인 안전 모드에서 시작한 후, 다음 명령으로 MySQL에 로그인합니다.
mysql -u root
- 새 비밀번호 설정 다음 SQL 명령을 실행하여 새 비밀번호를 설정합니다.
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
*NewPassword123!를 적절한 새 비밀번호로 교체하십시오.
- 서비스 재시작 비밀번호를 설정한 후, MySQL 서비스를 정상 모드로 재시작합니다.
sudo systemctl stop mysqld sudo systemctl start mysqld
- 새 비밀번호로 로그인 확인 설정한 새 비밀번호로 MySQL에 로그인할 수 있는지 확인합니다.
3.2 Windows에서 비밀번호 재설정 방법
Windows에서는 --init-file 옵션으로 MySQL을 시작하여 비밀번호를 재설정할 수 있습니다.
단계:
- MySQL 서비스 중지 서비스 관리자를 열고 “MySQL 서비스”를 중지합니다.
- 재설정을 위한 SQL 파일 생성 텍스트 편집기를 사용하여 SQL 파일(예:
reset_password.sql)을 만들고 아래 내용을 넣어 적절한 디렉터리에 저장합니다.ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
*NewPassword123!를 사용하려는 새 비밀번호로 교체하십시오.
--init-file옵션으로 MySQL 시작 관리자 권한으로 명령 프롬프트를 열고 다음 명령을 실행합니다.mysqld --init-file="C:\path o eset_password.sql"
*C:\path o eset_password.sql를 SQL 파일을 저장한 실제 경로로 교체하십시오.
- 서비스 재시작 정상 모드에서 MySQL을 재시작합니다. 서비스 관리자를 통해 서비스를 다시 시작하거나 다음 명령을 실행하십시오.
net start mysql
- 새 비밀번호로 로그인 확인 설정한 새 비밀번호로 MySQL에 로그인할 수 있는지 확인합니다.
4. 비밀번호 정책 확인 및 구성
MySQL은 비밀번호 보안을 강화하기 위해 “비밀번호 정책” 기능을 제공합니다. 이를 통해 최소 복잡도와 길이와 같은 요구 사항을 강제할 수 있습니다. 여기에서는 현재 정책을 확인하고 필요에 따라 설정을 변경하는 방법을 설명합니다.
4.1 비밀번호 정책 확인 방법
현재 비밀번호 정책을 확인하려면 validate_password 플러그인을 사용합니다. 이 플러그인이 활성화되어 있으면 MySQL은 설정된 정책에 따라 비밀번호를 검증합니다.
단계:
- MySQL에 로그인합니다.
mysql -u root -p
- 현재 정책 설정을 확인하려면 다음 명령을 실행합니다.
SHOW VARIABLES LIKE 'validate_password%';
출력에는 다음과 같은 구성 항목이 표시됩니다. * 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 비밀번호 정책 설정 변경
필요에 따라 비밀번호 정책을 완화하거나 강화할 수 있습니다. 아래에 예시를 보여드립니다.
정책 설정을 변경하는 단계:
- MySQL에 로그인합니다.
mysql -u root -p
- 현재 설정을 변경하는 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;
- 설정이 적용되었는지 확인하십시오.
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: 권한 오류 (사용자 접근 거부)
- 원인 : 로그인 시 제공된 사용자 이름이나 비밀번호가 올바르지 않거나, 사용자가 필요한 권한을 가지고 있지 않을 때 발생합니다.
- 해결책 :
- 올바른 사용자 이름과 비밀번호를 사용하고 있는지 확인하십시오.
- root 사용자로 로그인하거나 관리자에게 권한을 확인하도록 요청하십시오.
- 필요하다면 MySQL을 안전 모드(
--skip-grant-tables)로 시작하고 권한을 수정하십시오.
오류 2: MySQL 서비스가 시작되지 않음
- 원인 : MySQL 설정 파일(
my.cnf또는my.ini)에 오류가 있거나 디스크 공간이 부족할 때 발생할 수 있습니다. - 해결책 :
MySQL 오류 로그 파일을 확인하십시오. wp:list /wp:list
- Linux:
/var/log/mysqld.log - Windows:
C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log2. 설정 파일에 오류가 있다면 수정하십시오—특히 새로 추가된 설정을 확인하세요. 3. 디스크 공간이 부족하면 불필요한 파일을 삭제하거나 저장 용량을 확장하십시오. 4. 수정 후 서비스를 재시작하십시오.bash sudo systemctl restart mysqld
- Linux:
오류 3: 비밀번호 변경이 적용되지 않음
- 원인 : 비밀번호를 변경한 후 권한 테이블이 다시 로드되지 않았을 수 있습니다.
- 해결책 :
- 비밀번호 변경 명령을 실행한 후 다음 명령으로 권한을 다시 로드하십시오.
sql FLUSH PRIVILEGES; - MySQL 서비스를 재시작하고 새 비밀번호로 로그인해 보십시오.
5.2 안전 모드 사용 복구
위의 해결책으로 문제가 해결되지 않으면 안전 모드를 사용하여 복구를 시도할 수 있습니다.
단계:
- MySQL 서비스를 중지하십시오.
sudo systemctl stop mysqld
- MySQL을 안전 모드로 시작하십시오.
sudo mysqld_safe --skip-grant-tables &
- 안전 모드에서 MySQL에 로그인하고 영향을 받은 사용자의 권한이나 비밀번호를 수정하십시오.
- 수정이 끝나면 안전 모드를 종료하고 MySQL을 정상 모드로 재시작하십시오.
sudo systemctl restart mysqld
5.3 오류 로그를 효과적으로 활용하는 방법
MySQL 오류 로그는 문제 해결을 위한 가장 중요한 정보원 중 하나입니다. 아래 단계에 따라 로그를 검토하고 문제 해결에 활용하십시오.
단계:
- 오류 로그의 위치를 확인하십시오.
- Linux(일반 경로):
/var/log/mysqld.log - Windows:
C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log
- 로그 파일을 표시하십시오.
tail -n 100 /var/log/mysqld.log
*실시간으로 최신 오류를 모니터링하려면 -f 옵션을 추가할 수 있습니다.
tail -f /var/log/mysqld.log
- 로그 메시지를 읽고 오류 원인을 파악하십시오.
5.4 문제가 여전히 해결되지 않을 경우 대처 방법
- 공식 문서 참조 MySQL의 공식 문서에는 버전별 상세한 문제 해결 정보가 포함되어 있습니다. MySQL 공식 문서
- 지원 포럼 사용 커뮤니티 포럼이나 Stack Overflow에서 유사한 문제를 검색하여 솔루션을 찾으세요.
- 전문가 상담 문제를 해결할 수 없다면 시스템 관리자나 MySQL 전문가에게 상담하세요.

6. 자주 묻는 질문
MySQL 비밀번호를 관리하거나 재설정하는 동안 다양한 질문이나 문제가 발생할 수 있습니다. 이 섹션에서는 독자들이 가질 수 있는 일반적인 질문을 예상하고 각 솔루션을 명확하게 설명하겠습니다.
Q1: 초기 비밀번호를 찾을 수 없을 때 어떻게 해야 하나요?
A1:
초기 MySQL 비밀번호를 찾을 수 없다면 다음 단계를 시도해 보세요.
- 로그 파일 다시 확인
- Linux:
/var/log/mysqld.log - Windows:
C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log초기 비밀번호는 일반적으로 “temporary password”라는 텍스트와 함께 로그 파일에 기록되어 있습니다.
- 설치 프로그램 화면 확인 Windows에서 MySQL 설치 프로그램이 초기 비밀번호를 표시할 수 있습니다. 설치 직후 스크린샷을 저장했는지 확인하세요.
- 재설치 고려 여전히 초기 비밀번호를 찾을 수 없다면 MySQL을 제거하고 재설치하면 사용할 수 있는 새로운 초기 비밀번호가 생성될 수 있습니다.
Q2: 비밀번호를 재설정했는데도 로그인할 수 없는 이유는 무엇인가요?
A2:
비밀번호를 재설정했는데도 로그인이 안 된다면 다음 사항을 확인하세요:
- 사용자 이름과 호스트 확인
- MySQL에서 사용자 이름과 호스트의 조합이 중요합니다 (예:
'root'@'localhost').'%'를 사용하면 모든 호스트에서 액세스가 허용됩니다. - 사용자 목록 확인 명령:
sql SELECT User, Host FROM mysql.user;
- 권한 테이블 재로드 잊음 비밀번호 재설정 후 권한을 재로드하지 않으면 새 비밀번호가 적용되지 않습니다. 다음 명령을 실행하세요.
FLUSH PRIVILEGES;
- MySQL 서비스 재시작 비밀번호 재설정 후 MySQL 서비스를 재시작한 다음 다시 로그인해 보세요.
sudo systemctl restart mysqld
Q3: 비밀번호 정책을 비활성화할 수 있나요?
A3:
비밀번호 정책을 비활성화할 수 있지만, 보안 위험이 증가하므로 신중히 고려하세요. 다음 단계를 사용하여 validate_password 플러그인을 비활성화할 수 있습니다.
- MySQL에 로그인하세요.
mysql -u root -p
- 플러그인을 제거하는 명령을 실행하세요.
UNINSTALL PLUGIN validate_password;
- 비활성화되었는지 확인하세요.
SHOW PLUGINS;
참고:
이렇게 하면 약한 비밀번호가 허용되므로, 특히 프로덕션 환경에서는 다른 보안 조치를 강화하세요.
Q4: 비밀번호 재설정 중 오류가 발생하면 어떻게 해야 하나요?
A4:
재설정 중 오류를 처리하기 위한 지침으로 다음 단계를 사용하세요.
- 오류 메시지 확인
상세 메시지를 검토하기 위해 오류 로그를 확인하세요. wp:list /wp:list
- Linux:
/var/log/mysqld.log - Windows:
C:\ProgramData\MySQL\MySQL Server X.X\Logs\mysqld.log
- Linux:
- 안전 모드에서 수정 오류가 지속되면 MySQL을 안전 모드(
--skip-grant-tables)로 시작하여 문제가 되는 구성을 수정하세요. - 기존 사용자 삭제 및 재생성 문제가 사용자 관련이라면 사용자를 삭제하고 재생성하는 것도 효과적일 수 있습니다.
DROP USER 'root'@'localhost'; CREATE USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
Q5: 비밀번호가 다른 관리자와 공유되어 있다면 변경 시 영향이 있나요?
A5:
여러 관리자가 있는 경우 비밀번호 변경은 다음과 같은 영향을 미칠 수 있습니다.
- 영향 범위 다른 관리자들의 시스템이나 스크립트가 이전 비밀번호를 사용하고 있다면 연결 오류가 발생합니다.
- 사전 알림 비밀번호를 변경하기 전에 다른 관리자에게 알리고, 필요에 따라 스크립트나 설정을 업데이트하도록 합니다.
- 변경 후 안전한 공유 변경 후에는 새로운 비밀번호를 안전하게 공유할 방법을 확보하세요(예: 암호화된 메신저 도구).
7. 요약
MySQL 비밀번호를 확인하고 재설정하는 것은 데이터베이스를 운영할 때 피할 수 없는 필수 작업 중 하나입니다. 이 글에서는 초기 비밀번호 찾는 방법부터 잊어버린 비밀번호 재설정, 비밀번호 정책 설정 및 문제 해결까지 전반을 포괄적으로 다루어 초보자도 실습에 따라 할 수 있도록 했습니다.
이 글의 주요 내용
- 초기 비밀번호 찾는 방법
- Linux에서는
/var/log/mysqld.log를 확인하고, Windows에서는mysqld.log파일을 확인하여 초기 비밀번호를 찾을 수 있습니다.
- 잊어버린 비밀번호 재설정 방법
- 안전 모드와
--init-file옵션을 활용한 Linux와 Windows 모두에 대한 재설정 절차를 다루었습니다.
- 비밀번호 정책 확인 및 설정
validate_password플러그인을 사용해 환경에 맞는 정책을 설정하는 방법을 설명했습니다.
- 문제 해결
- 권한 문제, 서비스 시작 오류 등 흔히 발생하는 오류에 대한 구체적인 대응 방법을 소개했습니다.
- 추가 설명을 위한 FAQ
- 비밀번호 확인 및 재설정 과정에서 발생하는 일반적인 질문과 문제에 대한 답변을 제공했습니다.
독자를 위한 권장 사항
MySQL을 안전하고 효율적으로 운영하려면 다음 사항을 기억하세요.
- 비밀번호를 철저히 관리 강력한 비밀번호를 설정하고 안전하게 보관하세요. 정기적인 비밀번호 변경은 보안을 더욱 강화합니다.
- 오류 로그 활용 문제가 발생하면 원인을 파악하기 위해 오류 로그를 확인하는 습관을 들이세요.
- 공식 문서 참고 MySQL 공식 자료는 최신 버전별 정보를 제공합니다. 필요에 따라 활용하세요.
다음 단계
이 글의 단계들을 따라 하면 기본적인 MySQL 비밀번호 관리와 문제 해결에 필요한 실무 능력을 습득했을 것입니다. 다음 단계로는 다음을 고려해 보세요:
- 보안 추가 강화 방화벽 설정 및 SSL 연결 사용으로 전체 데이터베이스 보안을 향상시키세요.
- 백업 작업 검토 정기적인 백업 일정을 수립해 데이터 손실 상황에 완벽히 대비하세요.
MySQL을 올바르게 관리하여 원활하고 문제 없는 운영을 이루세요. 이 글이 여러분에게 도움이 되길 바랍니다.


