FrontierStack으로 Docker에서 MySQL 실행 및 모니터링하기
게시일 2026-09-02
MySQL은 여러분이 운영하는 다른 모든 것을 조용히 붙잡고 있을 가능성이 가장 높은 데이터베이스입니다. 요란하게 장애를 일으키는 일은 드뭅니다. 느려지고, 연결이 쌓이고, 테이블이 잠기고, 처음 알게 되는 것은 사이트가 멈춘다는 고객의 연락입니다. 이 가이드는 설치 방법과 함께, 그보다 더 중요한 부분인 실행 중인 MySQL의 내부를 들여다보는 방법을 다룹니다.
두 가지 설치 방법
MySQL은 네이티브로 실행할 수도, 컨테이너로 실행할 수도 있습니다. 네이티브 방식은 서비스 ▸ MySQL에서 Homebrew formula와 brew services 항목으로 설치됩니다. 로그인할 때 시작되며, 패널에서 시작, 중지, 다시 로드할 수 있습니다. MySQL이 바로 그 기기의 본업일 때 알맞은 선택입니다.
특정 버전이 필요할 때, 테스트용으로 쓰고 버릴 사본이 필요할 때, 또는 여러 데이터베이스가 하나의 설정 파일과 하나의 데이터 디렉터리를 두고 다투지 않게 나란히 두고 싶을 때는 컨테이너가 더 낫습니다. FrontierStack이 그 컨테이너를 만들어 드립니다.
컨테이너 만들기
Docker 패널을 열고 컨테이너 생성…을 누르십시오. 시작 템플릿 프리셋에서 MySQL을 선택하면 빈 양식이 아니라 바로 동작하는 구성을 편집할 수 있습니다.
- 이미지
mysql:8— 프로덕션 버전에 맞춰야 한다면 태그를 바꾸십시오. - 포트 3306, 127.0.0.1에만 바인딩. 이 기본값이 중요합니다. 데이터베이스는 이 기기에서만 접근할 수 있고 다른 곳에서는 접근할 수 없습니다. 다른 호스트가 정말로 연결해야 할 때만 체크를 해제하고, 그렇게 한다면 방화벽 설정을 각오하십시오.
- 볼륨
mysqldata를/var/lib/mysql에 마운트 — 이름 있는 볼륨이므로 컨테이너를 삭제하고 다시 만들어도 데이터가 남습니다. 이것이 없으면docker rm이 데이터베이스를 지워 버립니다. - 환경 변수
MYSQL_ROOT_PASSWORD, 비밀 값으로 표시. 여기에 실제 암호를 입력하십시오. 입력란은 가려지고, 값은 출력되는 대신 미리보기와 로그에서••••로 대체됩니다.
고급에서 유용한 설정은 재시작 정책입니다. 프리셋은 중지하지 않는 한을 사용하는데, 재부팅 후 데이터베이스를 다시 띄우면서도 의도적인 중지는 존중합니다. 항상은 손으로 중지한 뒤에도 다시 시작하므로 워크스테이션에서는 대개 원하는 동작이 아닙니다.
실행하기 전에 명령을 읽으십시오
시트에는 곧 실행할 정확한 docker run 명령줄이 비밀 값이 가려진 상태로 표시됩니다. 실제로 읽어 볼 가치가 있습니다. “앱이 뭔가를 했다”와 무엇이 만들어졌는지 정확히 아는 것의 차이입니다. 나중에 스크립트에서 같은 컨테이너를 만들고 싶다면 복사해 두십시오.
생성을 누르면 이미지를 가져오고, 컨테이너를 만들어 시작하며, 결과가 시트에 표시됩니다. 이후 컨테이너는 Docker 패널의 컨테이너 목록에 나타나며 시작, 중지, 재시작, 로그, 셸을 사용할 수 있습니다.
연결된 서버에서도
같은 시트가 플릿의 어느 서버에서나 동작합니다. 대상으로 호스트를 고르면 SSH를 통해 그곳에 컨테이너가 만들어집니다. 프리셋도, 미리보기도, 결과도 같습니다. 네이티브 서비스 패널로는 할 수 없는 부분입니다. 서비스 패널은 이 Mac에만 설치할 수 있습니다.
연결 지켜보기
데이터베이스 상태 패널은 살아 있는 연결을 하나하나 나열합니다. 사용자, 호스트, 데이터베이스, 명령, 현재 상태가 지속된 시간, 실행 중인 쿼리까지 보여 줍니다. 실제 문제 대부분은 이 목록에서 드러납니다. 4분째 Locked 상태에 갇힌 연결이나, 연결을 닫지 않는 앱이 남긴 유휴 연결 50개 같은 것들입니다.
패널에서 개별 연결을 종료할 수 있습니다. 실제 서버에 대한 실제 작업이므로 먼저 확인을 요청합니다.
“왜 느리거나 멈췄을까?”
꼭 알아 둘 만한 버튼입니다. 사후에 느린 쿼리 로그를 읽는 대신 실행 중인 서버를 검사합니다. 지금 무엇이 실행 중인지, 무엇이 무엇을 기다리는지, 연결 풀이 얼마나 찼는지, 그리고 어떤 쿼리가 증상이 아니라 원인이라 할 만큼 오래 머물러 있는지 살펴봅니다. 결과는 심각도 순으로 정렬되며, 각 항목 뒤에 있는 구체적인 프로세스가 함께 표시됩니다.
테이블 문제에는 전용 경로가 있습니다. 테이블 검사와 테이블 복구는 엔진 자체의 작업을 실행하고 테이블별 결과를 보고하므로, 비정상 종료 뒤에 손상된 테이블도 셸 작업 대신 두 번의 클릭으로 고칠 수 있습니다.
AI 관리자에게 물어보기
결과가 낯설다면 통째로 어시스턴트에게 넘기십시오. “사무실 서버의 데이터베이스가 느린데, 원인을 찾아 줘.” 어시스턴트가 프로세스 목록, 설정, 로그를 읽고 발견한 내용을 설명합니다. 기본적으로 읽기 전용이며, 변경 사항은 제안만 하고 여러분의 승인을 기다립니다.
앱에서 이 기능이 있는 곳
실제 작업은 데이터베이스 ▸ 데이터베이스 상태 패널이 담당합니다. 대상을 고르면 살아 있는 연결을 모두 나열하고, 주의가 필요한 연결을 표시하며, MySQL과 PostgreSQL에 대해서는 로그로 추측하는 대신 실행 중인 서버를 대상으로 “왜 느리거나 멈췄을까?”에 답합니다.
데이터베이스 호스트에 에이전트를 설치할 필요는 없습니다. FrontierStack은 이미 사용 중인 키로 SSH를 통해 연결된 서버에 접속하고, 데이터베이스 자체의 관리 인터페이스를 통해 정보를 읽습니다.
필요해지기 전에 알림을 설정하십시오
모니터링이 쓸모 있는 순간은 무언가 고장 나기 전입니다. 플릿에 호스트를 추가하고, 데이터베이스 상태가 그 호스트를 보도록 지정한 뒤, 점검이 일정에 따라 실행되게 하십시오. 죽은 데이터베이스는 “문제 없음”이 아니라 “데이터 없음”으로 보이므로, 명시적인 알림이 있어야 조용한 장애가 실제로 받아 보는 알림으로 바뀝니다.
Mac에서 모두 운영하십시오.
FrontierStack은 이 Mac과 연결된 서버에서 서비스를 설치, 모니터링, 보호하며 — 암호와 키는 어떤 AI에게도 보이지 않게 지킵니다.
FrontierStack 다운로드Apple 공증 완료 · 안전 & 보안 · macOS 13 Ventura 이상
