macOS에서 MySQL을 띄우려고 보면 brew services start mysql도 보이고 mysql.server start도 보여서 처음에는 뭐가 다른지 꽤 헷갈렸습니다.
둘 다 결국 MySQL 서버를 실행하는 건 맞지만, 누가 프로세스를 관리하느냐와 어떤 상황에서 더 편하냐가 다릅니다. 정리해보면 아래처럼 이해하는 게 가장 편했습니다.
평소 로컬 개발용으로 계속 켜둘 거면
brew services start mysql, 필요할 때만 직접 켜고 끄고 싶으면mysql.server start
두 명령어 차이부터 보면#
| 항목 | brew services start mysql | mysql.server start |
|---|---|---|
| 관리 주체 | Homebrew + macOS launchd | MySQL 제공 스크립트 |
| 실행 방식 | 백그라운드 서비스 등록 후 실행 | 수동 실행 |
| 자동 시작 | 가능 | 기본적으로 없음 |
| 관리 명령어 | brew services list, stop, restart | mysql.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도 충분히 괜찮습니다.
