
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 이미지를 사용합니다.MySQL 컨테이너가 정상적으로 실행되면, 다음과 같은 방법으로 데이터베이스를 생성할 수 있습니다.
sudo docker exec -it 컨테이너명 bash
mysql -u root -p
# 프롬프트에서 비밀번호 입력
CREATE DATABASE mydatabase;
호스트 시스템에서 MySQL 클라이언트를 설치한 후 다음 명령어를 사용하여 MySQL 컨테이너에 접속합니다.
mysql -h 127.0.0.1 -P 외부포트 -u root -p
# 프롬프트에서 비밀번호 입력
MySQL 프롬프트에서 데이터베이스를 생성합니다.
CREATE DATABASE mydatabase;
도커 명령어를 사용하여 직접 SQL 명령을 실행합니다.
sudo docker exec -it 컨테이너명 mysql -u root -p'비밀번호' -e "CREATE DATABASE test;"
접근이 거부되는 경우, MySQL의 초기화 설정을 변경해야 할 수 있습니다. 컨테이너 내부에서 MySQL 설정을 변경합니다.
sudo docker exec -it 컨테이너명 bash
mysql -u root -p
# 프롬프트에서 비밀번호 입력
ALTER USER 'root'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY '비밀번호';
FLUSH PRIVILEGES;
이제 다시 데이터베이스를 생성할 수 있습니다. 문제가 계속 발생하면 MySQL 로그를 확인하여 추가적인 정보를 얻으세요.
sudo docker logs 컨테이너명
이로써 Docker를 사용하여 MySQL을 설정하고 데이터베이스를 생성하는 방법을 마칩니다.