Docker로 MySQL 설정 및 데이터베이스 생성하기

onlyJoon·2024년 7월 25일
post-thumbnail

Docker를 사용하여 MySQL을 설정하고 데이터베이스를 생성하는 과정을 단계별로 설명합니다.

1. Docker로 MySQL 컨테이너 실행

다음 명령어를 사용하여 MySQL 컨테이너를 실행합니다. 여기서는 외부 포트를 '외부포트'으로 설정하고, MySQL 루트 비밀번호를 비밀번호로 설정합니다.

sudo docker run -p 외부포트:내부포트 --name 컨테이너명 \
-e MYSQL_ROOT_PASSWORD='비밀번호' \
-e TZ=Asia/Seoul \
-v 마운트 볼륨 위치 \
-d mysql:latest

이 명령어의 각 부분은 다음과 같습니다:

  • -p 외부포트:내부포트: 호스트의 외부포트를 컨테이너의 내부포트에 매핑합니다.
  • --name 컨테이너명: 컨테이너 이름을 컨테이너명로 지정합니다.
  • -e MYSQL_ROOT_PASSWORD='비밀번호': MySQL 루트 사용자의 비밀번호를 설정합니다.
  • -e TZ=Asia/Seoul: 컨테이너의 시간대를 Asia/Seoul로 설정합니다.
  • -v 마운트 볼륨 위치: 호스트의 디렉토리를 컨테이너의 데이터 디렉토리에 마운트합니다.
  • -d: 컨테이너를 백그라운드에서 실행합니다.
  • mysql:latest: 최신 버전의 MySQL 이미지를 사용합니다.

2. 데이터베이스 생성

MySQL 컨테이너가 정상적으로 실행되면, 다음과 같은 방법으로 데이터베이스를 생성할 수 있습니다.

2.1. 컨테이너 내부에서 MySQL 클라이언트를 사용하기

  1. 컨테이너 내부로 접속합니다.
sudo docker exec -it 컨테이너명 bash
  1. MySQL 클라이언트를 사용하여 root 사용자로 접속합니다.
mysql -u root -p
# 프롬프트에서 비밀번호 입력
  1. MySQL 프롬프트에서 데이터베이스를 생성합니다.
CREATE DATABASE mydatabase;

2.2. 호스트 시스템에서 MySQL 클라이언트를 사용하기

호스트 시스템에서 MySQL 클라이언트를 설치한 후 다음 명령어를 사용하여 MySQL 컨테이너에 접속합니다.

mysql -h 127.0.0.1 -P 외부포트 -u root -p
# 프롬프트에서 비밀번호 입력

MySQL 프롬프트에서 데이터베이스를 생성합니다.

CREATE DATABASE mydatabase;

2.3. 도커 명령어를 사용하여 데이터베이스 생성하기

도커 명령어를 사용하여 직접 SQL 명령을 실행합니다.

sudo docker exec -it 컨테이너명 mysql -u root -p'비밀번호' -e "CREATE DATABASE test;"

3. MySQL 초기화 설정 변경 (필요한 경우)

접근이 거부되는 경우, MySQL의 초기화 설정을 변경해야 할 수 있습니다. 컨테이너 내부에서 MySQL 설정을 변경합니다.

  1. 컨테이너 내부로 접속합니다.
sudo docker exec -it 컨테이너명 bash
  1. MySQL에 root 사용자로 접속합니다.
mysql -u root -p
# 프롬프트에서 비밀번호 입력
  1. MySQL 프롬프트에서 권한을 업데이트합니다.
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '비밀번호';
FLUSH PRIVILEGES;

이제 다시 데이터베이스를 생성할 수 있습니다. 문제가 계속 발생하면 MySQL 로그를 확인하여 추가적인 정보를 얻으세요.

sudo docker logs 컨테이너명

이로써 Docker를 사용하여 MySQL을 설정하고 데이터베이스를 생성하는 방법을 마칩니다.

profile
A smooth sea never made a skilled sailor

0개의 댓글