phpMyAdmin에서 여러 MySQL 서버를 한 화면에서 관리하기 (with Docker)

이경헌·2025년 5월 13일
0

하나의 phpMyAdmin 컨테이너에서 여러 개의 MySQL 서버를 동시에 관리하고 싶다면?
PMA_HOSTS, PMA_PORTS 설정으로 해결할 수 있습니다.


🔧 배경

기존에 Docker로 구성한 phpMyAdmin은 하나의 DB 서버만 관리할 수 있는 상태였습니다. 하지만 다음과 같은 필요가 생겼습니다.

  • 하나의 phpMyAdmin 화면에서 여러 MySQL 인스턴스를 동시에 관리하고 싶다.
  • 각각 다른 포트를 사용하는 다중 MySQL 컨테이너와 연결하고 싶다.
  • 관리 편의성을 높이고, 테스트 서버/운영 서버를 동시에 보고 싶다.

✅ 해결 방법 – PMA_HOSTS, PMA_PORTS 사용

phpMyAdmin에서 다중 DB 연결을 지원하기 위해서는 다음 환경 변수를 사용해야 합니다:

  • PMA_HOSTS : 쉼표로 구분된 여러 DB 컨테이너의 호스트명
  • PMA_PORTS : 각 DB 컨테이너가 열고 있는 포트 번호
    (호스트 순서와 일치해야 함)

✅ 수정 전 docker-compose.yml

services:
  phpmyadmin:
    container_name: phpmyadmin
    image: phpmyadmin:latest
    restart: always
    ports:
      - "18080:80"
    environment:
      - "PMA_HOST=mysql"
      - "PMA_PORT=3306"
      - "PMA_ABSOLUTE_URI=https://www.eventor.store/phpmyadmin"
      - "UPLOAD_LIMIT=50M"
      - "TZ=Asia/Seoul"
    networks:
      - front-network
      - back-network

✅ 수정 후 docker-compose.yml

services:
  phpmyadmin:
    container_name: phpmyadmin
    image: phpmyadmin:latest
    restart: always
    ports:
      - "18080:80"
    environment:
      - "PMA_HOSTS=mysql,mysql-server-1,mysql-server-2,mysql-server-3"
      - "PMA_PORTS=3306,3306,3306,3306"
      - "PMA_ABSOLUTE_URI=https://www.eventor.store/phpmyadmin"
      - "UPLOAD_LIMIT=50M"
      - "TZ=Asia/Seoul"
    networks:
      - front-network
      - back-network

📷 적용 전 화면 (단일 DB만 보임)

적용 전 화면

  • 하나의 DB 서버(mysql)만 보이며, 선택 UI가 존재하지 않음

📷 적용 후 화면 (다중 DB 서버 관리 가능)

적용 후 화면

  • 여러 개의 MySQL 서버를 드롭다운에서 선택 가능
  • 각각의 서버 이름으로 구분되어 연결 가능

0개의 댓글