안녕하세요. 주식회사 서버몬 입니다.
MariaDB를 사용하다 보면 루트(root) 계정의 비밀번호를 분실하거나 초기화해야 할 상황이 생깁니다.
금일은 CentOS/RHEL 환경에서 루트 비밀번호를 초기화하는 방법을 작성하였습니다.
MariaDB 버전 및 PW 분실로 인한 에러
시스템 환경: CentOS / RHEL 기반
MariaDB 버전: 10.11.5
MariaDB에 루트 계정으로 로그인하려 했지만 비밀번호를 분실해 접속이 불가능한 상태입니다.
이 경우 단순히 로그인 실패 오류가 발생하거나, 소켓 경로 문제처럼 보이는 메시지가 출력될 수 있습니다.
실제 원인은 비밀번호 인증 실패이므로, 이를 우회하여 비밀번호를 초기화할 필요가 있습니다.
[root@localhost ~]# mariadb --version
mariadb Ver 15.1 Distrib 10.11.5-MariaDB, for Linux (x86_64) using readline 5.1
[root@localhost ~]# mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local server through socket '/var/lib/mysql/mysql.sock' (2)
--skip-grant-tables
--skip-grant-tables 옵션은 MySQL/MariaDB에서 사용자 권한을 무시하고 DB에 접속할 수 있게 해주는 긴급 복구용 옵션입니다.
이 옵션을 활성화하려면 시스템 환경 변수로 MYSQLD_OPTS를 설정하고, DB 서비스를 재시작해야 합니다.
서비스가 이 옵션으로 실행되면 루트 비밀번호 없이도 접속이 가능해지며, 권한이 모두 무시되기 때문에 루트 권한을 가진 상태로 비밀번호를 재설정할 수 있습니다.
[root@localhost ~]# systemctl stop mysql
[root@localhost ~]# systemctl status mysql
● mariadb.service - MariaDB 10.11.5 database server
Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
Drop-In: /etc/systemd/system/mariadb.service.d
└─migrated-from-my.cnf-settings.conf
Active: inactive (dead) since Thu 2025-08-07 09:49:54 KST; 52s ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
Process: 8468 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 8452 ExecStart=/usr/sbin/mariadbd $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status=0/SUCCESS)
Process: 8310 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recover>
[root@localhost ~]# systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# ps -ef | grep mariadbd
mysql 9908 1 1 09:51 ? 00:00:00 /usr/sbin/mariadbd --skip-grant-tables
root 9936 8909 0 09:52 pts/3 00:00:00 grep --color=auto mariadbd
[root@localhost ~]# mysql -uroot
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.11.5-MariaDB-log MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
패스워드 변경
비밀번호를 재설정하는 방법은 두 가지가 있습니다.
ALTER USER 구문은 최신 MariaDB에서 권장되는 방식이며, 명확하고 직관적입니다.
SET PASSWORD는 구버전이나 호환성 문제로 ALTER USER가 먹히지 않을 때 사용할 수 있습니다.
MariaDB [(none)]> use mysql
MariaDB [mysql]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');
Query OK, 0 rows affected (0.001 sec
MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.002 sec)
//OR//
MariaDB [mysql]> ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
Query OK, 0 rows affected (0.001 sec)
MariaDB [mysql]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.002 sec)
MariaDB [mysql]> exit
Bye
[root@localhost ~]# systemctl stop mariadb
[root@localhost ~]# systemctl unset-environment MYSQLD_OPST
[root@localhost ~]# ps -ef | grep mariadbd
root 9982 8909 0 09:53 pts/3 00:00:00 grep --color=auto mariadbd
비밀번호 변경 후에는 반드시 FLUSH PRIVILEGES; 명령으로 변경 사항을 적용해야 합니다.
skip-grant-tables 상태에서는 일부 권한 관련 구문이 차단되므로, 가능한 ALTER USER를 먼저 시도하는 것이 좋습니다.
새로운 패스워드를 이용해 로그인
비밀번호 변경이 완료되었으면, 이제 --skip-grant-tables 옵션을 비활성화해야 합니다.
이를 위해 MYSQLD_OPTS 환경변수를 제거하고, 다시 MariaDB 서비스를 재시작합니다.
모든 과정이 완료되면, 새로 설정한 루트 비밀번호로 정상 로그인되는지 확인합니다.
[root@localhost ~]# systemctl start mariadb
[root@localhost ~]# mysql -uroot -p123
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 10.11.5-MariaDB-log MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> exit
Bye
이번 글에서 소개한 방식은 MariaDB 루트 비밀번호를 직접 우회하고 재설정하는 가장 실용적인 방법입니다.
다만, --skip-grant-tables 모드는 DB의 모든 보안을 무시하는 위험한 상태이므로 변경 후에는 즉시 원래대로 복구해주는 것이 중요합니다.
1U서버 / 2U서버 / AI서버 / alyac / APC / APC UPS / backup / carepack / centos / chakramax / cuda / DAS / DB / DB서버 / defog / DEFOG랙 / dell5820 / dell5820t / dell7920 / dellpoweredge / dellr240 / dellr340 / dellr350 / dellr450 / dellr540 / dellr630 / dellr640 / dellr740 / dellr750 / dellserver / dellt40 / dellt440 / dellt5820 / dell서버 / DELL서버CPU / DELL서버RAID컨트롤러 / DELL서버SAS하드디스크 / DELL서버가격비교 / DELL서버가격비교견적 / DELL서버견적 / DELL서버구매 / DELL서버디스크교체 / DELL서버메모리 / dell서버서버몬 / DELL서버펌웨어 / DELL서버하드디스크구매 / dell옵션 / dell워크스테이션 / dl20 / dl20gen10 / dl20gen11 / dl360 / dl360gen10 / dl360gen11 / dl380 / dl380g10 / dl380gen10 / dl380gen11 / ECC메모리 / EDFOG랙가격 / embedded / est security / ESTSOFT / FIRMWARE / GPU / gpu서버 / gpu타워형서버 / greenlake / HA솔루션 / HP GPU / hp hdd / hpdl20 / HPDL20Gen10 / hpdl360 / hpdl360gen10 / hpdl380 / hpdl380g10 / HPDL380Gen10 / HPE / HPE GPU / hpe hdd / hpe rok / HPE Service Pack for Proliant / HPE SPP / hpe ssa / hpedl20 / hpedl20gen10 / hpedl360gen10 / hpe서버 / HPE서버CPU / HPE서버RAID컨트롤러 / HPE서버SAS하드디스크 / HPE서버가격비교 / HPE서버가격비교견적 / HPE서버견적 / HPE서버구매 / HPE서버드라이버설치 / HPE서버디스크교체 / HPE서버메모리 / HPE서버비용 / hpe서버소음 / HPE서버펌웨어 / HPE서버하드디스크구매 / hpe옵션 / hpe정품 / hpgen10 / hpml30 / hpserver / hpz2 / hpz4 / hpz4g4 / hpz6g4 / hpz8g4 / hp마이크로서버 / hp서버 / hp서버cto / hp서버pc / HP서버메모리 / hp서버소음 / hp서버컴퓨터 / HP서버파워 / HP서버펌웨어 / HP서버하드디스크 / hp옵션 / hp워크스테이션 / hp정품 / hp프로라이언트 / HYPER BACKUP / ibm서버 / ilo / Intelligent Provisioning / internetdisk / KVM / KVM 기술지원비(비용) / KVM 설치비 / L2스위치 / L3스위치 / LENONO서버SAS하드디스크 / lenovop620 / lenovor650 / LENOVO서버 / LENOVO서버CPU / LENOVO서버RAID컨트롤러 / LENOVO서버가격비교 / LENOVO서버가격비교견적 / LENOVO서버견적 / LENOVO서버구매 / LENOVO서버디스크교체 / LENOVO서버메모리 / LENOVO서버하드디스크구매 / LENOVO펌웨어업데이트 / Linux / ML30 / ml30gen10 / ml30gen11 / ML350GEN10 / ml350gen11 / ML360 / MS CSP / MSSQL / MSSQL 기술지원비(비용) / MSSQL 설치비 / MYSQL / MySQL 기술지원비(비용) / MySQL 설치비 / NAS / NVIDIA / Office 365 / oneview / orange / OS설치 / PA-410 / PA-440 / paloalto / poweredger740 / poweredger750 / precision5820 / QUADRO / r240 / r250 / r340 / r360 / r440 / r550 / r650 / r660 / r740 / r750xs / r760 / r760xs / RAID / redhat / RHEL설치 / RMS랙 / rocky / s100i / securedisk / server / serverpc / smart storage administrator / SPP / sql server / sr250 / sr650 / SYNOLOGY / SYNOLOGY나스 / t150 / t360 / UPS / UPS기술지원 / UPS납품 / UPS설치 / V3 / veeam / vroc / windows server / Windows서버설치 / XEON서버 / z8g4 / 가상서버 / 가성비서버 / 기술지원비(비용) / 나스기술지원 / 나스설치지원 / 네트워크스위치 / 네트워크장비 / 더블테이크 / 데이터베이스 / 델5820 / 델서버 / 델서버비용 / 델서버펌웨어업데이트 / 델옵션 / 델워크스테이션 / 델컴퓨터워크스테이션 / 디포그 / 디포그랙 / 디포그랙가격 / 딥러닝 / 딥러닝pc / 딥러닝서버 / 랙 / 랙(RACK) 기술지원비(비용) / 랙(RACK) 설치비 / 랙납품설치 / 랙설치 / 레노버p620 / 레노버서버 / 레노버워크스테이션 / 레노보서버 / 레노보서버펌웨어 / 레드헷설치 / 레이드 / 레이드구성 / 록키리눅스 / 리눅스 / 리눅스 기술지원비(비용) / 리눅스 설치비 / 리눅스서버 / 리눅스서버설치 / 리눅스서버트러블슈팅 / 리눅스트러블슈팅 / 문서보안 / 문서중앙화 / 미니서버 / 미니서버랙 / 미니서버렉 / 미디어서버 / 방화벽 / 방화벽 기술지원비(비용) / 방화벽 설치비 / 방화벽엔지니어 / 백업 / 백업 기술지원비(비용) / 백업 서버 / 백업서비스 / 백업솔루션 / 보안솔루션 / 보안솔루션구매 / 보안솔루션설치 / 보안툴 / 빔백업 / 샤크라맥스 / 서버 / 서버 기술지원비(비용) / 서 버 랙마운트비용 / 서버 설치비 / 서버 장애조치비용 / 서버CPU / 서버MEMORY / 서버OS설치 / 서버pc / 서버가격 / 서버가속기 / 서버견적 / 서버교체 / 서버구매 / 서버구입 / 서버구축 / 서버기술지원 / 서버납품 / 서버디스크장애처리 / 서버랙 / 서버렉 / 서버렉마운트 / 서버메모리 / 서버 몬 / 서버몬기술지원 / 서버백업 / 서버보안 / 서버부품 / 서버엔지니어 / 서버옵션 / 서버용GPU / 서버용PC / 서버용그래픽카드 / 서버용메모리 / 서버 / 컴퓨터 / 서버용하드디스크 / 서버재고 / 서버컴 / 서버컴퓨터 / 서버트러블슈팅 / 서버판매 / 서버하드 / 서버호스팅 / 스위치 / 스위치 기술지원비(비용) / 스위치 설치비 / 스토리지 / 스토리지 기술지원비(비용) / 스토리지 랙마운트비용 / 스토리지 설치비 / 스토리지 장애조치비용 / 스토리지납품설치 / 스토리지서버 / 시놀로지DS918 / 시놀로지HyperBackup / 시놀로지나스 / 시놀로지나스백업 / 시놀로지하이퍼백업 / 시큐어디스크 / 안랩 / 알약 / 앱서버 / 오피스 365 / 우분투설치 / 워크스테이션 / 워크스테이션pc / 워크스테이션컴퓨터 / 윈도우서버 / 윈도우서버2016 / 윈도우서버2019 / 윈도우서버2022 / 윈도우서버설치 / 윈도우서버컴퓨터 / 윈도우서버트러블슈팅 / 윈도우즈 기술지원비(비용) / 윈도우즈 설치비 / 이스트소프트 / 이스트 시큐리티 / 이중화솔루션 / 이중화솔루션구매 / 이중화솔루션설치 / 인터넷디스크 / 임베디드 / 저가서버 / 저렴한서버 / 정품서버 / 정품서버옵션 / 제온서버 / 젠서버 / 중고서버 / 중고워크스테이션 / 카보나이트 / 카스퍼스키 / 컴퓨터서버 / 케어팩 / 타워서버 / 타워형서버 / 팔로알토 / 페도라설치 / 프로라이언트
'설치 및 기술 자료 > Linux' 카테고리의 다른 글
[Linux] Jenkins 설치부터 에이전트 연동 및 스크립트 실행 (0) | 2025.08.08 |
---|---|
[Linux] WireGuard VPN 서버 구성하기 (0) | 2025.07.30 |
[Linux] Red Hat KVM 가상화 설치 및 사용방법 (0) | 2025.06.27 |
[Linux] Podman이란? Docker를 대체할 수 있을까? (0) | 2025.06.20 |
[Linux] OpenVAS(GVM) 설치 및 구성 (0) | 2025.06.17 |
댓글