개발자는 기록이 답이다
맥북 M2 mysql 도커 설치 및 workbench 설치 본문
맥북 mysql 설치 방법 3가지
1. 공식 웹 사이트 다운로드: MySQL을 공식 웹 사이트에서 다운로드하여 설치하는 경우 컴퓨터에 MySQL을 직접 설치하는 것이므로 충돌 및 버전 관리의 어려움이 발생할 수 있습니다. 또한, 설치 및 제거가 복잡할 수 있습니다.
2. Homebrew: Homebrew를 사용하여 패키지 관리를 할 경우, Homebrew를 통해 설치된 MySQL 버전을 다루게 됩니다. 따라서 MySQL을 Homebrew로 설치하고 동시에 다른 방식으로 MySQL을 설치한다면, 버전 충돌 및 서비스 충돌 문제가 발생할 수 있습니다.
3. 도커 이미지 실행: 도커 컨테이너를 사용하는 경우, 컨테이너 내에서 독립적인 환경에서 MySQL이 실행됩니다. 다른 방식으로 설치된 MySQL과 독립적이지만 동시에 여러 개의 MySQL 컨테이너를 실행할 수 있습니다.
일반적으로 하나의 시스템에서 하나의 MySQL 설치 방식을 선택하여 사용하는 것이 가장 간단하며 관리가 용이합니다. 따라서 MySQL을 설치하려면 이러한 방법 중 하나를 선택하고, 다른 설치 방법과 충돌하지 않도록 주의해야 합니다.
저는 계속 Mysql서버가 문제가 있었습니다.
다 똑같은 MySQL인줄 알았는데, 설치 방법에 따라 다 달라서 포트 충돌이 일어난다고 합니다.
homebrew방식으로 해결하려고 다른 블로그에 있는 방법대로 해봤는데, 전부 다 안되서 그냥 다 삭제하고 도커만 사용하려고 합니다.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
mysql 완전 삭제방법(Homebrew, 공식웹사이트)
도커로 mysql 설치해서 사용하기
$ docker run --name local-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 -d mysql:8.1
- `docker run`: Docker 컨테이너를 실행하는 명령어입니다.
- `--name local-mysql`: 실행 중인 컨테이너에 "local-mysql"라는 이름을 부여합니다. 이렇게 하면 나중에 컨테이너를 참조하거나 관리할 때 해당 이름을 사용할 수 있습니다.
- `-p 3306:3306`: 호스트의 포트 3306을 컨테이너의 포트 3306과 연결합니다. 이렇게 하면 호스트와 컨테이너 간에 MySQL 서버에 대한 통신이 가능해집니다. 포트를 설정하지 않으면 workbench랑 제대로 연결되지 않습니다.
- `-e MYSQL_ROOT_PASSWORD=1234`: 컨테이너 내의 환경 변수로 `MYSQL_ROOT_PASSWORD`를 설정하고 해당 변수에 "1234"를 할당합니다. 이것은 MySQL 루트 사용자의 암호를 설정하는 것입니다. 이 경우, "1234"가 루트 암호로 설정됩니다.
- `-d mysql:8.1`: Docker 허브에서 공식 MySQL 이미지를 가져와서 8.1 버전의 이미지를 사용하여 컨테이너를 시작합니다. `-d` 플래그는 컨테이너를 백그라운드에서 실행하도록 지시합니다.
`docker run` 명령어는 이미지를 가져오고(run) 컨테이너를 시작하는 명령어입니다. 이미지가 로컬에 없으면 Docker는 이미지를 Docker Hub 또는 기본 이미지 저장소에서 자동으로 가져옵니다. 따라서 이미지가 로컬에 없으면 자동으로 pull 과정이 포함됩니다. 이미지가 이미 로컬에 존재하는 경우에는 pull이 수행되지 않습니다.
이후로 도커를 닫았다 다시 켤때는 아래 명령어를 통해 이전과 동일한 설정(포트 포워딩 및 이미지)으로 실행할 수 있습니다.
$ docker stop local-mysql // 멈춤
$ docker start local-mysql // 시작
도커로 띄운 컨테이너의 포트 번호가 다를 경우, my.cnf파일에서 포트번호를 수정하면 됩니다.
MySQL Workbench 설치 시 튕김 현상
맥북 M1에서 workbench의 버전에 따라 튕김현상이 발생한다는 블로그 글은 많은데, 저는 M2인데도 자꾸 workbench가 튕겨서 8.0.28버전으로 다운그레이드 해봤습니다. 기존에는 8.0.30이었는데 문제가 없었다가 갑자기 튕김현상이 일어난거보면 그냥 MySQL서버가 작동되지 않았던거 같은데 8.0.28도 아직까지 괜찮아서 그대로 사용하려고 합니다.
MySQL Workbench가 Mac에서 충돌 또는 중단된 경우 튕기는 이유 2가지
- MySQL 서버가 작동되지 않았을 경우: 만약 MySQL Workbench가 MySQL 서버에 연결하려고 할 때 서버가 작동되지 않는 상태라면 연결이 실패하고 MySQL Workbench가 종료될 수 있습니다.
- 맥북에 맞는 Workbench가 아닐 경우: 다른 운영 체제 또는 MySQL Workbench 버전과 호환되지 않는 경우에도 튕김 문제가 발생할 수 있습니다. MySQL Workbench는 특정 운영 체제와 버전과 함께 잘 작동하도록 설계되어 있으며, 호환되지 않는 조합에서 문제가 발생할 수 있습니다. - 대신 dbeaver 추천받음
따라서, MySQL Workbench를 사용할 때 MySQL 서버가 제대로 실행 중이고, 맞는 버전을 사용하는 것이 중요합니다. 특정 버전의 MySQL Workbench가 어떤 MySQL 서버 버전과 호환되는지에 대한 정보는 MySQL Workbench의 공식 문서나 MySQL 웹 사이트에서 확인할 수 있습니다.
추가로 workbench에서 erd를 만들 수 있는데, 상단에 있는 Database탭의 Reverse Engineer를 통해 만들 수 있습니다.
참고 링크 :
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
MySQL server through socket (2) 해결
'Database' 카테고리의 다른 글
실전 SQL 문법 : 문자열쪼개기와 CASE문, IF문 (0) | 2023.10.06 |
---|---|
Subquery의 select, where, from 절 비교 예제, With절 예제 (1) | 2023.10.06 |