Milky's note

Docker에 Mysql 설치(MAC) 본문

DevOps/Docker

Docker에 Mysql 설치(MAC)

밀뿌 2022. 12. 20. 23:57

앞에서 설치한 도커에 Mysql 이미지를 받아서 실행시키려고 한다.

도커 설치가 안되었으면 앞의 글을 참고해서 도커 설치부터 진행하면 된다.

https://milkyspace.tistory.com/106

1. mysql 이미지 pull

👤 docker run [--platform linux/amd64] 
	-p 3306:3306 (컨테이너포트:호스트포트) 
    --name {컨테이너 이름} 
    -e MYSQL_ROOT_PASSWORD={루트 유저 비밀번호} 
    -e MYSQL_DATABASE={데이터베이스 이름} 
    -e MYSQL_USER={유저 이름} 
    -e MYSQL_PASSWORD={비밀번호} 
    -d mysql
[intel]
docker run -p 3306:3306 --name mysql_container -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=main -e MYSQL_USER=milky -e MYSQL_PASSWORD=0000 -d mysql

[M1]
docker run --platform linux/amd64 -p 3306:3306 --name mysql_container -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=main -e MYSQL_USER=milky -e MYSQL_PASSWORD=0000 -d mysql

위의 명령어를 사용해서 mysql 이미지를 받을 수 있다.

여기서 주의할 점은 Mac일 경우 CPU가 M1인지 intel인지에 따라 명령어가 다르다.

크게 다른 점은 없고 M1일 경우에는 docker run 뒤에 “--platform linux/amd64”를 꼭 붙여주어야 한다 !!!!!

mysql 이미지를 pull 받았다.

이미지 확인하는 명령어를 이용해서 받은 이미지를 확인한다.

도커 대시보드로 가서 컨테이너와 이미지를 확인해보면 잘 다운 받아졌고 정상 동작중인 상태를 확인할 수 있다.

2. Mysql 접속

mysql을 접속하는 방법에는 여러가지가 있다.

1. dbeaver(SQL 클라이언트)로 접속

먼저 첫번째 방법은 dbeaver(SQL 클라이언트)를 통해서 mysql에 접속해보려고 한다.

나는 pc에 이미 설치되어 있어서 실행시켰다.

 

만약 설치가 안되어 있다면 앞에서 사용한 brew cask를 사용해서 설치한다.

brew install --cask dbeaver-community 

dbeaver를 실행시키고 mysql db를 선택한다.

이미지를 받을 때 설정해주었던 db 이름과 username, password를 사용하여 test connection을 해본다.

나는 mysql을 처음 연결시키는 거라 connector가 필요하다고 해서 다운을 받았다.

드라이브까지 받고 당연히 바로 연결될 줄 알았는데 Public Key Retrieval is not allowed 오류가 발생하고 연결이 되지 않아서 root 계정으로 다시 해봤는데도 같은 오류가 발생하였다.

확인해보니까 mysql이 이전에는 host, port, db, username, password만 있어도 db에 접속이 되었는데

8.0부터는 allowPublicKeyRetrieval=True 라는 설정을 추가해주어야지 접속이 된다 ㅜㅜ

앞에 한 것처럼 main 내용은 똑같이 기입해주고, Driver Properties 탭으로 가서 설정을 변경해준다.

위의 설정 값을 true로 바꾸어주고 완료를 누르니 드디어 연결이 되었다 !!!!

아직 db만 만들었고 테이블은 만들지 않아서 아무것도 뜨지 않는다.

 

간단한 테이블을 만들고 임시 데이터를 조회해보려고 한다.

# 테이블 생성
CREATE TABLE main.sample (
	id INT NOT NULL,
	name varchar(100) NULL
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COLLATE=utf8mb4_0900_ai_ci;
# data insert
INSERT INTO main.sample (id,name) VALUES
	 (1,'abcd'),
	 (2,'effffff');

조회 결과 확인


2. 도커 명령어로 확인

두번째 방법으로는 도커 명령어로 컨테이너를 실행시켜 mysql 컨테이너에 접속해서 확인하는 방법이 있다.

 

도커 컨테이너 리스트를 확인하고 위에서 이미지를 받을 때 생성한 mysql_container 를 실행시키고 컨테이너 접속을 해보려고 한다. 명령어는 다음과 같다.

 

도커 컨테이너 확인

docker ps -a


도커 컨테이너 시작(중지/재시작)

# MySQL Docker 컨테이너 시작 
  docker start {컨테이너 이름} 

# MySQL Docker 컨테이너 중지 
  docker stop {컨테이너 이름} 

# MySQL Docker 컨테이너 재시작 
  docker restart {컨테이너 이름}

 

도커 컨테이너 접속

docker exec -it {컨테이너 이름} bash

위 명령어를 입력하면 해당 컨테이너로 접속하게 된다.

그리고 설치한 mysql dbms로 접속하려고 한다. 나는 root 계정으로 접속할 것이라 처음 mysql 이미지 설치할 때 생성한 root 비밀번호가 필요하다.

# root 계정으로 mysql 접속 
bash-4.4# mysql -u root -p

도커에서 mysql 컨테이너로 들어왔다.

이제 아까 만든 db와 테이블을 확인해보려고 한다.


데이터베이스 확인

mysql 이미지 받을 때 생성한 db(main)도 보인다.

나머지는 Mysql 설치시 생성되는 기본, 메타 데이터베이스이다.

 

데이터베이스 선택

나는 main 데이터베이스를 선택해서 그 안에 테이블과 데이터를 확인하려고 한다.

그래서 use 명령어를 사용해서 main 데이터베이스를 선택했다.

Database changed 문구가 뜨면 선택한 데이터베이스로 잘 들어왔다는 뜻이다.

 

테이블 확인

main db안의 테이블들을 확인하는 명령어이다.

dbeaver에서 생성한 테이블이 조회되었다.

 

데이터 조회

데이터를 조회하는 쿼리이다.

아까 insert한 데이터들이 있는 것을 확인해보았다.

 

이상으로 도커에 mysql 이미지를 받아서 간단한 db와 테이블을 구축해보았다 !!!!!

 

'DevOps > Docker' 카테고리의 다른 글

Docker Mysql Sample Database 설치  (2) 2022.12.21
Docker 설치(Mac)  (0) 2022.12.08
Comments