데이터베이스 관리 · 4 min read · Feb 13, 2026
MySQL 및 MariaDB 루트 비밀번호 설정, 변경 및 재설정

이 튜토리얼에서는 MySQL 또는 MariaDB 루트 비밀번호를 설정, 변경 및 재설정하는 방법을 설명합니다 (비밀번호를 잊어버린 경우). 나는 자주 ‘mysqladmin: connect to server at ‘localhost’ failed error: ‘Access denied for user ‘root’@’localhost’ (using password: YES)’와 같은 문제를 보았습니다. 그래서 MySQL 관련 비밀번호 문제를 해결하는 방법을 상기시킬 때가 되었다고 생각했습니다. MySQL 루트 비밀번호를 재설정하는 방법을 빠르게 찾고 있다면 이 튜토리얼의 하단에서 찾을 수 있습니다. 이 튜토리얼은 CentOS, Debian, Fedora 및 Ubuntu를 포함한 모든 주요 Linux 배포판과 호환됩니다.
mysqladmin 명령을 사용하여 루트 비밀번호 변경하기
방법 1 - 처음으로 루트 비밀번호 설정하기
MySQL에 대해 루트 비밀번호를 설정한 적이 없다면, 서버는 루트로 연결할 때 비밀번호를 전혀 요구하지 않습니다. 처음으로 루트 비밀번호를 설정하려면, 셸 프롬프트에서 다음과 같이 mysqladmin 명령을 사용하십시오:
mysqladmin -u root password newpass루트 비밀번호를 새로운 비밀번호 ‘ newpass ‘로 변경(또는 업데이트)하려면 다음 명령을 사용해야 합니다:
mysqladmin -u root -p password newpassEnter password:만약…
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'그렇다면 아래의 지침을 따라 MySQL 비밀번호를 복구하십시오.
위의 예에서 ‘ password ‘라는 단어는 명령의 일부이므로, 그것을 당신의 비밀번호로 교체하지 마십시오. ‘ newpass ‘라는 단어는 새로운 비밀번호입니다.
MySQL 또는 MariaDB 루트 비밀번호를 처음 설정할 때 mysqladmin 명령을 사용하는 대안은 mysql_secure_installation 명령을 사용하는 것입니다. 이 명령은 이전 및 새로운 MySQL 루트 비밀번호를 요청할 뿐만 아니라 테스트 데이터베이스 비활성화와 같은 다른 보안 설정도 수행합니다.
다음은 그 명령을 사용하는 방법입니다:
mysql_secure_installation아래와 같이 질문에 답하십시오:
Change the root password? [Y/n] <-- y
New password: <-- 새로운 MySQL 루트 비밀번호 입력
Re-enter new password: <-- MySQL 루트 비밀번호 반복
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database and access to it? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y 위의 답변은 권장 사항이며, 테스트 데이터베이스를 유지하거나 루트 사용자에 대한 원격 액세스가 필요한 경우 다른 설정을 선택할 수 있습니다. 참고: PHPMyAdmin을 원격으로 사용하기 위해 원격 액세스가 필요하지 않습니다.

다른 사용자의 MySQL 비밀번호 변경하기
일반 사용자 비밀번호를 변경하려면 다음을 입력해야 합니다:
mysqladmin -u user-name -p password newpass이 예에서의 변수는:
- user-name: 비밀번호를 변경하려는 사용자의 사용자 이름입니다.
- newpass: 새로운 비밀번호입니다.
‘password’라는 단어는 변수가 아니므로 교체하지 마십시오. 이 명령은 이전 비밀번호를 요청합니다.
방법 2 - 비밀번호 업데이트 또는 변경하기
MySQL은 사용자 테이블에 사용자 이름과 비밀번호를 저장합니다. 다음 방법을 사용하여 비밀번호를 직접 업데이트할 수 있습니다:
- MySQL 서버에 로그인하고, 셸 프롬프트에서 다음 명령을 입력하십시오:
mysql -u root -p- mysql 데이터베이스 사용하기 (mysql> 프롬프트에서 명령 입력):
mysql> use mysql;- 사용자 비밀번호 변경하기:
MySQL 5.7.5 및 이전 버전
mysql> update user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE';MySQL 5.7.6 및 최신 버전
mysql> SET PASSWORD FOR 'ENTER-USER-NAME-HERE'@'localhost' = PASSWORD("newpass");- 권한 새로 고침:
mysql> flush privileges;
mysql> quit이 방법은 PHP 또는 Perl 스크립트를 사용할 때 필요합니다.
분실한 MySQL 루트 비밀번호 복구하기
다음의 다섯 가지 간단한 단계로 MySQL 데이터베이스 서버 비밀번호를 복구할 수 있습니다:
1단계: MySQL 서버 프로세스를 중지합니다.
2단계: –skip-grant-tables 옵션으로 MySQL (mysqld) 서버/데몬 프로세스를 시작하여 비밀번호를 요청하지 않도록 합니다.
3단계: 루트 사용자로 MySQL 서버에 연결합니다.
4단계: 새로운 루트 비밀번호를 설정합니다.
5단계: 종료하고 MySQL 서버를 재시작합니다.
각 단계에 대해 입력해야 할 명령은 다음과 같습니다 (루트 사용자로 로그인):
1단계: MySQL 서비스 중지:
service mysql stop출력:
Stopping MySQL database server: mysqld.2단계: 비밀번호 없이 MySQL 서버 시작:
mysqld_safe --skip-grant-tables &출력:
[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started3단계: MySQL 클라이언트를 사용하여 MySQL 서버에 연결:
mysql -u root출력:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 56299
Server version: 5.6.34-1 (Debian)Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>4단계: 새로운 MySQL 루트 사용자 비밀번호 설정:
MySQL 5.7.5 및 이전 버전
mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quitMySQL 5.7.6 및 최신 버전
mysql> use mysql;
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpass");
mysql> flush privileges;
mysql> quit 5단계: MySQL 서버 중지:
service mysql stop출력:
Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended
[1]+ Done mysqld_safe --skip-grant-tables위의 명령이 MySQL을 중지하지 못할 경우 이 명령을 사용하여 MySQL을 중지하십시오 (어떤 명령이 작동하는지는 MySQL 버전에 따라 다릅니다):
killall mysqld출력은 Linux 배포판에 따라 다를 수 있습니다. 오류가 보고되지 않는 한 걱정하지 마십시오. MySQL 서버를 시작하고 테스트하십시오:
service mysql start
mysql -u root -p새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.