FreeBSD에서 MySQL 설치 후 막히는 지점까지 정리한 실전 설정 가이드

패키지 설치까지는 문제없이 끝났는데, 막상 서비스를 실행하려는 순간 멈춰버리는 경우가 많습니다. 특히 FreeBSD는 Linux와 다르게 서비스 등록 방식이 달라서 “설치했는데 왜 안 켜지지?”라는 지점에서 헷갈리기 쉽습니다. 이 글에서는 단순 설치를 넘어서, 실제 운영 환경에서 필요한 설정 흐름까지 한 번에 정리합니다.

1. 설치 방식 선택에서 이미 갈리는 이유

처음 설치할 때 pkg로 할지 ports로 할지 고민하다가 시간을 쓰는 경우가 많습니다. FreeBSD에서는 pkg가 빠르고 간편하며, ports는 커스터마이징이 가능하지만 시간이 더 걸립니다. 일반적인 서버 운영 환경에서는 다음 명령으로 pkg 설치가 가장 많이 사용됩니다.

pkg install mysql80-server

처음에는 ports가 더 “정석”처럼 느껴지지만, 실제로는 유지보수까지 고려하면 pkg가 더 안정적으로 관리되는 경우가 많습니다. 특히 업데이트와 의존성 관리까지 생각하면 pkg를 선택하는 쪽이 실수 확률이 낮습니다. 여기서 갈리는 핵심은 ‘커스터마이징이 필요한가’ 여부입니다.

2. 서비스 등록(rc.conf)에서 자주 막히는 이유

설치 후 바로 mysql 실행을 시도했다가 “서비스가 없다”는 식의 메시지를 보는 경우가 많습니다. FreeBSD에서는 서비스 실행 전에 반드시 rc.conf에 등록해야 합니다.

sysrc mysql_enable="YES"
service mysql-server start

이 과정에서 흔한 실수는 “start만 하면 된다”라고 생각하는 것입니다. rc.conf 등록 없이 실행하면 재부팅 시 서비스가 자동으로 올라오지 않습니다. 실제 운영에서는 이 한 줄 빠진 상태로 배포되는 경우도 종종 발생합니다. 놓치기 쉬운 포인트는 ‘지금 실행’보다 ‘재부팅 이후 상태’입니다.

3. 초기 보안 설정, 왜 대부분 대충 넘기면 문제 생기는지

MySQL 설치 직후 바로 접속해서 사용하는 경우가 있는데, 이 단계에서 보안 설정을 건너뛰는 경우가 많습니다. 기본적으로 제공되는 mysql_secure_installation은 반드시 실행하는 것이 좋습니다.

mysql_secure_installation

이 과정에서는 root 비밀번호 설정, 익명 사용자 제거, 원격 root 접속 제한 등을 설정하게 됩니다. 특히 원격 root 접속을 허용할지 묻는 부분에서 무심코 YES를 선택하는 경우가 많은데, 운영 환경에서는 보통 제한하는 것이 일반적입니다. 헷갈리기 쉬운 부분은 “접속 편의성”과 “보안” 사이의 선택입니다.

4. 실무에서 바로 필요한 사용자/인코딩 설정

설치 직후 UTF-8 설정 없이 바로 테이블을 생성했다가 나중에 인코딩 문제로 다시 작업하는 경우가 자주 발생합니다. MySQL에서는 기본 문자셋과 콜레이션을 미리 지정해 두는 것이 중요합니다.

my.cnf 파일에 다음과 같은 설정을 추가합니다.

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

또한 root 계정을 그대로 사용하는 대신, 별도의 사용자 계정을 생성하는 것이 일반적인 운영 방식입니다. 초기에는 root로 작업하다가 권한 관리 단계에서 꼬이는 경우가 많기 때문에, 처음부터 분리하는 것이 안정적입니다. 여기서 중요한 건 ‘처음 구조를 어떻게 잡느냐’입니다.

5. 실제로 많이 틀리는 설정 포인트 정리

설정은 다 했는데 접속이 안 되는 상황이 생각보다 자주 발생합니다. 이럴 때는 대부분 아래 중 하나에서 문제가 생깁니다.

– 소켓 파일 경로 불일치
– bind-address 설정 미확인
– 방화벽 또는 외부 접근 제한

특히 “로컬에서는 되는데 외부에서 안 되는 경우”가 가장 흔한데, 이때 MySQL 설정만 보고 해결하려다가 시간을 낭비하기 쉽습니다. 실제로는 OS 레벨 방화벽이나 네트워크 설정이 원인인 경우가 많습니다. 헷갈리기 쉬운 부분은 DB 문제처럼 보이지만 시스템 설정 문제인 경우입니다.

6. 운영 환경 기준 최소 안정화 체크

기본 설치를 끝내고 바로 서비스를 운영에 투입하는 경우가 있는데, 몇 가지는 반드시 확인하는 것이 좋습니다. 로그 파일 위치, 데이터 디렉터리, 백업 정책은 최소한 점검해야 합니다.

또한 MySQL 프로세스 상태를 주기적으로 확인할 수 있는 방법을 마련해 두는 것이 좋습니다. 문제가 생겼을 때 로그를 어디서 봐야 하는지 모르는 상태가 가장 위험합니다. 여기서 갈리는 핵심은 “문제 발생 후 대응 가능 여부”입니다.

FAQ

Q1. pkg와 ports 중 어떤 게 더 좋은가요?
A. 일반적인 서버 운영이라면 pkg가 관리 측면에서 더 안정적입니다. ports는 특정 옵션이 필요한 경우에 선택하는 편이 좋습니다.

Q2. mysql_secure_installation은 꼭 해야 하나요?
A. 필수에 가깝습니다. 특히 외부 접근이 가능한 서버라면 기본 상태로 두는 것은 위험할 수 있습니다.

Q3. root 계정 그대로 써도 되나요?
A. 가능은 하지만 권한 분리 측면에서 권장되지 않습니다. 별도 사용자 계정을 만드는 것이 일반적입니다.

Q4. UTF-8 설정은 나중에 바꿔도 되나요?
A. 가능하지만 이미 생성된 데이터에는 영향을 주지 않기 때문에 초기에 설정하는 것이 훨씬 편합니다.

Q5. 서비스가 자동 실행되지 않습니다
A. rc.conf 등록 여부를 먼저 확인해야 합니다. 이 부분이 빠진 경우가 가장 흔합니다.

Q6. 외부 접속이 안 될 때 어디부터 확인해야 하나요?
A. MySQL 설정뿐 아니라 방화벽, bind-address, 사용자 권한까지 함께 점검해야 합니다.

마무리

FreeBSD에서 MySQL 설치 자체는 어렵지 않지만, 실제로 막히는 지점은 설치 이후입니다. 특히 서비스 등록, 보안 설정, 사용자 구조까지 한 번에 정리해두지 않으면 나중에 다시 손대야 하는 일이 많아집니다.

지금 단계에서 한 번 정리해 두면 이후 운영 과정이 훨씬 단순해집니다. 설치보다 “초기 설정 흐름”을 제대로 잡는 것이 더 중요하게 느껴지는 이유가 바로 여기에 있습니다.

※ 본 글은 일반적인 환경을 기준으로 정리된 내용이며, 실제 서버 구성이나 버전에 따라 일부 설정은 달라질 수 있습니다.

댓글 남기기

광고 차단 알림

광고 클릭 제한을 초과하여 광고가 차단되었습니다.

단시간에 반복적인 광고 클릭은 시스템에 의해 감지되며, IP가 수집되어 사이트 관리자가 확인 가능합니다.