MySQL / MariaDB에서 루트 사용자 또는 다른 사용자의 비밀번호 변경

MySQL과 MariaDB에서 비밀번호 관리를 마스터하는 것은 이러한 인기 데이터베이스를 사용하는 모든 시스템 관리자 또는 개발자에게 필수적인 기술입니다. 보안 강화, 규정 준수 요건 충족, 또는 잊어버린 비밀번호 수정 등 어떤 목적이든 사용자 비밀번호, 특히 루트 비밀번호를 변경하는 것은 명확하고 엄격하게 이루어져야 합니다. 오픈소스 데이터베이스 환경은 계속해서 발전하고 있으며, MariaDB는 이중 라이선스 모델로 운영되는 MySQL의 100% 무료 대안으로 자리매김하고 있습니다. 이 가이드에서는 명령줄과 그래픽 인터페이스를 통해 접근 가능한 방법을 통해 최신 안정 버전(MySQL 8.0.38 및 MariaDB 11.7)에 적용된 절차를 자세히 살펴보고 이러한 액세스 관리를 용이하게 하는 필수 도구를 강조합니다. 프로덕션 환경에서 보안을 강화하려면 정기적인 비밀번호 변경뿐 아니라, 특히 MySQL과 MariaDB가 자주 실행되는 Linux 시스템과 관련된 기본적인 기술 요구 사항에 대한 깊은 이해가 필요합니다. 확장 권한의 핵심 요소인 루트 사용자든 일반 사용자든 이러한 비밀번호를 관리할 때는 신중하고 체계적으로 수행해야 합니다. 또한, 일상적인 관리에 상당한 편의성을 제공하는 phpMyAdmin, Adminer, HeidiSQL, DBeaver, Workbench, Navicat, SQLyog, Toad와 같은 솔루션도 살펴보겠습니다.

이 프레젠테이션에서는 안전한 데이터베이스 연결, 자격 증명 수정을 위한 특정 SQL 명령, 변경 전 사용자 유효성 검증, 그리고 구체적인 예시를 통한 실제 구현 및 일반적인 실수를 방지하기 위한 팁 등 여러 측면을 자세히 설명합니다. 특히 관리자가 높은 수준의 데이터 보호를 유지할 수 있도록 최신 해싱 및 인증 메커니즘을 중점적으로 다룹니다.

명령줄을 통한 MySQL/MariaDB의 root 또는 사용자 비밀번호 변경

MySQL 또는 MariaDB에서 사용자 비밀번호 변경은 종종 명령줄 작업으로 시작되는데, 이는 특히 Linux 서버에서 완전하고 빠른 제어가 가능하기 때문에 시스템 관리자가 선호하는 방법입니다. 충분한 권한을 가진 계정(대부분 root 사용자)으로 데이터베이스에 로그인한 후, 명확하게 정의된 몇 가지 단계를 따라야 합니다. 텍스트 모드에서 데이터베이스에 대한 안전한 연결

데이터베이스 액세스는

mysql -u root -p

명령을 사용하여 수행됩니다. 여기서 -u root는 사용자를 지정하고 -p 는 비밀번호를 묻습니다. 올바른 인스턴스에 연결하는 것이 중요하며, 사용자 테이블에 액세스하기 위해 MySQL 데이터베이스를 지정할 수 있습니다. 실행 명령: mysql -u root -p mysql

  • 그러면 인터페이스에서 루트 사용자와 연결된 비밀번호를 요청합니다. 그러면 SQL 쿼리를 입력할 수 있는 MySQL 프롬프트가 나타납니다.
  • 이 방법은 로컬 Linux 서버, Docker 컨테이너 또는 Windows나 macOS 설치 환경 모두에서 보편적입니다. Linux에서 사용자 관리에 대한 자세한 내용은 시스템 관리에 사용되는 “sudo” 및 “su” 명령과 같은 전문 자료를 참조하는 것이 좋습니다.
  • 필수 Linux 명령어를 알아보세요.

사용자 및 관련 호스트 나열비밀번호를 변경하기 전에 사용자의 존재 여부를 확인하고 권한이 있는 호스트를 파악하는 것은 업데이트 중 실수를 방지하는 데 필수적입니다.

MariaDB의 경우 쿼리는 다음과 같습니다.

select user,host,password from mysql.user;

  • MySQL 8 이상에서는 구조 변경으로 인해 다음을 사용합니다. SELECT user,host,authentication_string FROM mysql.user;
  • 이 단계는 올바른 클라이언트 서버(localhost, %, ip 등)의 올바른 사용자를 대상으로 하는지 확인합니다. 예를 들어, 루트 사용자는 'root'@'localhost'에만 정의할 수 있습니다.

이 경우 원격 로그인이 금지되므로 효과적인 보안 기능입니다. ALTER USER 명령을 사용하여 비밀번호를 변경하세요.비밀번호를 변경하는 핵심 명령어는

ALTER USER

입니다. 일반적인 구문은 다음과 같습니다. ALTER USER ‘username’@’host’ IDENTIFIED BY ‘new_password’;예를 들어, 로컬 루트 비밀번호를

  • _o0t#@()é&P$

로 변경하려면 다음과 같이 명령합니다. ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘_o0t#@()é&P$’;실행 후 사용자 확인 쿼리를 다시 실행하여

  • authentication_string

또는 password 열(버전에 따라 다름)의 값 차이를 확인할 수 있습니다. 이 명령은 비교적 최신 버전부터 MariaDB 및 MySQL에서도 작동합니다. 경우에 따라 서버 구성 및 보안에 따라 FLUSH PRIVILEGES;

명령을 사용하여 권한을 강제로 다시 로드해야 할 수도 있지만, 이 작업은 대개 자동으로 수행됩니다. 고급 비밀번호 관리 설정 ALTER USER 구문을 사용하면 보안을 강화하기 위해 비밀번호 관리 옵션을 추가할 수도 있습니다.VALID UNTIL

비밀번호 만료일을 설정하는 기능으로, 내부 정책에 따라 전문적인 환경에서 유용합니다.

PASSWORD EXPIRE

  • 다음 로그인 시 비밀번호를 강제로 변경합니다. FAILED_LOGIN_ATTEMPTS
  • ACCOUNT LOCK
  • 여러 번 로그인 시도 실패 시 자동 잠금을 관리하여 무차별 대입 공격에 대한 방어력을 향상합니다. 이러한 매개변수는 MySQL 또는 MariaDB에 따라 다르지만, 엄격한 액세스 관리에 도움이 되므로 거버넌스 규칙을 구현할 때 고려해야 합니다. Linux 보안, 특히 OS 수준의 비밀번호 관리에 대해 자세히 알아보려면 전용 리소스를 활용하는 것이 필수적입니다. Linux에서 비밀번호 효과적으로 보호하기 . https://www.youtube.com/watch?v=E35HkTHuqT8

강력한 그래픽 도구를 사용하여 MySQL/MariaDB 사용자 비밀번호 변경 데이터베이스에 대한 지식이 부족하거나 사용자 친화적인 인터페이스를 선호하는 경우, MySQL 또는 MariaDB 그래픽 관리 전용 타사 애플리케이션을 사용하는 경우가 많습니다. 이 도구들은 명령줄을 사용하지 않고도 비밀번호 변경 및 일반 관리를 크게 용이하게 하며, 전문가에게 적합한 고급 기능을 제공합니다.PhpMyAdmin: 필수 웹 인터페이스

PhpMyAdmin은 브라우저를 통해 MySQL/MariaDB를 관리하는 데 가장 널리 사용되는 도구입니다. LAMP 서버에 간편하게 설치할 수 있으며, 사용자 친화적인 디자인으로 몇 번의 클릭만으로 사용자 계정과 비밀번호를 관리할 수 있습니다.

전용 URL(예: https://192.168.1.111/phpmyadmin/)에 로그인합니다.

관리자 계정으로 로그인합니다.

“사용자 계정” 섹션에 액세스합니다.

사용자 이름을 선택하고 “비밀번호 변경”을 클릭합니다.

  • 새 비밀번호를 입력하고 안전한 비밀번호 생성 옵션을 선택합니다. 해시 알고리즘을 선택합니다(기본값 = SHA2, 권장).
  • “실행”을 통해 적용합니다.
  • 이 과정은 직관적이며 안전한 전환을 보장합니다. PhpMyAdmin 설치 및 구성에 대한 자세한 내용은 Linuxencaja.net을 비롯한 유용한 튜토리얼을 참조하세요. 이 튜토리얼에서는 Debian 또는 기타 GNU/Linux 배포판에서의 설치 및 구성 단계를 자세히 설명합니다.
  • Linux 기반 필수 도구 설치 및 팁
  • 사용자 관리를 위한 기타 인기 그래픽 클라이언트
  • phpMyAdmin 외에도 사용자 경험을 향상시키고 다양한 플랫폼에 적합한 여러 소프트웨어 도구가 있습니다.

Adminer: 간편성과 실행 속도로 널리 알려진 가벼운 대안입니다.HeidiSQL:

Windows에서 뛰어난 성능을 제공하는 여러 연결을 관리하는 마법사입니다.

DBeaver:

  • 멀티플랫폼을 지원하며, 개발자에게 완벽한 완전하고 확장 가능한 인터페이스를 제공합니다. Workbench:
  • Oracle에서 출시한 공식 MySQL 도구로, 관리에 적합합니다. Navicat, SQLyog, Toad: 고급 기능을 제공하는 상용 솔루션으로, 특히 SLA 관리 및 보안이 중요한 전문 환경에서 유용합니다. 이러한 클라이언트는 직관적인 그래픽 인터페이스를 통해 비밀번호 변경을 허용하며, 대부분 비밀번호 생성기, 활동 로그 및 일상적인 관리를 용이하게 하는 기타 도구를 포함합니다.
  • https://www.youtube.com/watch?v=JU0aTWNwngk Linux 환경에서 MySQL/MariaDB 비밀번호 관리를 위한 예방 조치 및 모범 사례
  • Linux에서 MySQL 또는 MariaDB를 사용하려면 시스템 보안과 사용자 관리에 대한 지식도 필요합니다. 이 두 가지 계층은 최적의 보호를 위해 긴밀하게 연동됩니다. 데이터베이스 비밀번호 관리가 미흡하면 심각한 보안 취약점이 될 수 있습니다. 루트 비밀번호를 보호하고 액세스를 제한하세요.
  • MySQL 루트 사용자는 로컬호스트에서만 접근 가능하도록 하여 서버 외부에서의 연결을 방지하는 것이 좋습니다. 기본적으로 초기 구성은 이렇지만, 다음 사항을 확인하는 것이 중요합니다. 루트 사용자 호스트 확인:

SELECT user,host FROM mysql.user WHERE user=’root’;

보안되지 않은 네트워크에서 루트 사용자 접근 차단 또는 제한

원격 접근 시 권한이 낮은 사용자 우선

데이터베이스에 원격으로 접근할 경우 SSL/TLS를 통한 보안 연결 사용

또한 시스템 수준에서 루트 계정을 보호하는 것이 필수적입니다. 권한이 지나치게 광범위하여 로컬에서 MySQL을 악용할 수 있는 시스템 사용자는 피해야 합니다. Linux는 이 주제에 맞춰 권한 및 그룹 관리 기능을 제공하는 강력한 도구를 제공합니다.

Linux 그룹 관리에 대한 자세한 내용은 여기를 참조하세요.

  • 정기적으로 비밀번호를 변경하고 접근을 추적하세요. 보안 정책의 일환으로 비밀번호를 정기적으로 변경하는 것은 필수적인 조치입니다. 몇 가지 간단한 규칙을 따르세요.
  • 정기적인 비밀번호 변경 일정을 정하세요.
  • 비밀번호를 공유하거나 재사용하지 마세요.
  • 특수 문자, 숫자, 문자를 조합한 복잡한 비밀번호를 사용하세요.

고급 기능을 활용하여 비밀번호 만료 및 순환을 시행하세요. 액세스 로그와 의심스러운 동작을 확인하세요. 마지막으로, 각 사용자에게 부여된 권한을 고려하여 정기적인 감사를 실행하는 것이 좋습니다. Linux 사용자 관리 및 관련 권한에 대한 자세한 내용은 다음 링크를 참조하세요.

Linux의 사용자 관리 및 권한

  • 고급 관리: MySQL/MariaDB에서 루트 비밀번호 분실 시 재설정 시나리오
  • 루트 비밀번호를 분실하거나 잊어버린 경우 가장 심각한 문제가 발생합니다. 이 경우 기존 절차는 더 이상 작동하지 않으며, 데이터베이스 제어권을 되찾기 위해 특정 모드가 필요합니다. 이러한 접근 방식에는 정밀성과 높은 시스템 권한이 필요합니다.
  • 안전 모드에서 MySQL/MariaDB 서버를 다시 시작합니다.
  • 비밀번호 없이 루트 사용자 제어권을 되찾으려면 MySQL 서버를 중지하고 권한 확인 없이 모드로 다시 시작해야 합니다.
  • 다음과 같은 명령을 사용하여 서버를 중지합니다.

sudo systemctl stop mysql 또는sudo service mysql stop

옵션을 사용하여 서버를 시작합니다.

–skip-grant-tables

이 옵션은 액세스 검사를 일시적으로 비활성화합니다.

비밀번호 없이 로그인

  • 이 단계는 데이터베이스를 일시적인 취약점에 노출시키므로, 절차 진행 중에 환경을 격리하는 것이 중요합니다. 로그인 후에는 이전 섹션에서 설명한 대로 루트 비밀번호를 변경할 수 있습니다. 비밀번호를 업데이트하고 정상적으로 재시작하세요. 업데이트 후에는 보안을 복원하기 위해 권한 복구를 포함한 표준 재부팅이 필수적입니다. 다음 명령을 사용하여 루트 비밀번호를 변경하세요. ALTER USER
  • 또는 이전 MariaDB 버전에서는 SET PASSWORD 실행
  • FLUSH PRIVILEGES;

하여 사용자 테이블을 다시 로드하세요.

서버를 중지하고 정상적으로 재시작하세요.

이러한 절차는 서비스 중단이나 오작동을 방지하기 위해 운영 환경으로 전환하기 전에 격리된 환경에서 수행하는 것이 가장 좋습니다. 서버가 다시 시작되고 실행되면 Adminer 또는 DBeaver와 같은 다른 도구를 사용하여 이러한 변경 사항을 검증할 수 있습니다.

  • https://www.youtube.com/watch?v=xvUW3kF2GzI 종합적인 MySQL/MariaDB 사용자 관리 및 관련 보안을 위한 추가 도구 수동 방식 외에도 여러 애플리케이션을 통해 비밀번호 관리 및 접근 제어가 용이해집니다. 다양한 프로필에 맞는 다양한 도구
  • 2025년에 MySQL/MariaDB 사용자 관리를 위해 알아야 할 유용한 소프트웨어 목록은 다음과 같습니다. phpMyAdmin : 직관적이고 다중 플랫폼에서 사용 가능한 웹 관리 도구입니다.
  • Adminer

: 신속한 개입에 이상적인 경량 웹 솔루션입니다.

HeidiSQL

: 고급 사용을 위한 강력한 Windows 클라이언트입니다.

DBeaver

: 여러 데이터베이스를 지원하는 강력한 다중 플랫폼입니다.

Workbench

  • : 공식 MySQL 도구로 포괄적이고 안정적입니다.Navicat
  • ,SQLyog
  • ,Toad
  • : 다양한 고급 기능(SLA 관리, 보고서, 강화된 보안)을 제공하는 전문가용 제품군입니다.이러한 소프트웨어 프로그램에는 SQL 쿼리를 수동으로 조작하지 않고도 명확한 그래픽 메뉴를 통해 사용자 비밀번호를 쉽게 변경할 수 있는 기능이 포함되어 있습니다. 또한 안전한 비밀번호 생성 또는 권한 관리 옵션도 제공하는 경우가 많습니다. 보안 워크플로우 구축을 위한 모범 사례 및 통합
  • 이러한 도구를 지속적으로 사용하려면 접근 권한, 문서화 및 운영 모니터링에 대한 엄격한 규정이 준수되어야 합니다. 예:phpMyAdmin 및 기타 인터페이스에 대한 액세스를 제한하여 IP 주소를 보호합니다.
  • 정확한 감사 및 로깅 시스템을 구현합니다.로그인 실패 시 알림을 구성합니다. 관리자를 대상으로 사용자 관리 및 이상 탐지 교육을 실시합니다.이러한 모범 사례를 구현하기 위한 포괄적인 가이드는 기본 Linux 명령어를 다루는 자료와 같은 전문 자료에서 제공하는 권장 사항을 참고할 수 있습니다. 필수 Linux 명령어.