본문으로 건너뛰기
  1. Posts/

macOS에서 MySQL 실행할 때 `brew services`와 `mysql.server` 차이 정리

·3 분
NineKoo9
작성자
NineKoo9
목차

macOS에서 MySQL을 띄우려고 보면 brew services start mysql도 보이고 mysql.server start도 보여서 처음에는 뭐가 다른지 꽤 헷갈렸습니다.

둘 다 결국 MySQL 서버를 실행하는 건 맞지만, 누가 프로세스를 관리하느냐와 어떤 상황에서 더 편하냐가 다릅니다. 정리해보면 아래처럼 이해하는 게 가장 편했습니다.

평소 로컬 개발용으로 계속 켜둘 거면 brew services start mysql, 필요할 때만 직접 켜고 끄고 싶으면 mysql.server start


두 명령어 차이부터 보면
#

항목brew services start mysqlmysql.server start
관리 주체Homebrew + macOS launchdMySQL 제공 스크립트
실행 방식백그라운드 서비스 등록 후 실행수동 실행
자동 시작가능기본적으로 없음
관리 명령어brew services list, stop, restartmysql.server status, stop
제 기준 추천 상황평소 로컬 개발용잠깐 켜서 확인하거나 테스트할 때

brew services start mysql는 언제 쓰면 편할까?
#

이건 Homebrew가 macOS의 launchd에 MySQL을 서비스로 등록해서 관리하는 방식입니다.

한 번 켜두고 계속 쓸 거라면 이쪽이 훨씬 편합니다. 로그인 이후에도 다시 실행되게 관리할 수 있고, brew services list로 다른 로컬 서비스와 함께 상태를 확인할 수 있어서 관리 자체가 단순합니다.

제가 로컬에서 MySQL을 자주 쓰는 상황이라면 보통 이 방식을 먼저 씁니다.

brew services start mysql
brew services stop mysql
brew services restart mysql
brew services list

장점도 분명합니다.

  • 매번 터미널에서 직접 켤 필요가 없습니다.
  • Homebrew로 설치한 다른 서비스와 함께 관리하기 편합니다.
  • 평소 개발 환경을 유지할 때 손이 덜 갑니다.

mysql.server start는 언제 더 나을까?
#

이 명령은 MySQL이 제공하는 실행 스크립트를 직접 호출하는 방식입니다.

느낌상 서비스 등록이라기보다 “지금 필요해서 직접 켠다"에 더 가깝습니다. 그래서 자동 시작보다는 필요할 때 켜고, 끝나면 끄는 흐름에 잘 맞습니다.

mysql.server start
mysql.server stop
mysql.server status

이 방식이 더 편한 경우도 있습니다.

  • MySQL을 항상 켜둘 필요는 없을 때
  • 시작과 종료를 직접 제어하고 싶을 때
  • 실행 상태를 보면서 테스트하거나 확인할 때

다만 설치 방식이나 PATH 설정에 따라 mysql.server 명령이 바로 안 잡히는 경우는 있습니다. 그런 점까지 생각하면 Homebrew로 설치한 환경에서는 brew services 쪽이 좀 더 덜 헷갈렸습니다.

그럼 mysqld_safe는 뭘까?
#

가끔 mysqld_safe & 같은 명령도 같이 보입니다.

이건 더 낮은 레벨에서 MySQL 데몬을 실행하는 방식이고, mysql.server가 내부적으로 활용하는 쪽에 가깝습니다. 평소 로컬 개발에서는 굳이 이 단계까지 직접 만질 일은 많지 않았습니다.

제 기준에서는 이렇게만 구분해도 충분했습니다.

  • 계속 써야 하는 로컬 DB면 brew services
  • 잠깐 띄우고 테스트할 거면 mysql.server
  • 실행 흐름을 아주 직접적으로 건드릴 때만 mysqld_safe

마무리
#

결론만 다시 적으면, macOS에서 Homebrew로 MySQL을 설치했다면 보통은 brew services start mysql이 가장 편합니다.

반대로 MySQL을 가끔만 쓰거나 직접 켜고 끄는 흐름이 더 편하면 mysql.server start도 충분히 괜찮습니다.