티스토리 뷰

mysql -h127.0.0.1 -uroot -p

이번 시간에는 기존에 작성되어진 MariaDB안에 값을 복사해서, Container화를 시키려합니다. 다시 작성할 수도 있지만, 이미 작성되어있는 DB를 굳이 두번 작성하는일은 비효율적이기에 DockerFile을 활용해 DB의 내용을 그대로 끌어와 Maria DB를 활성화 시킬 예정입니다.

가장 처음으로는 폴더를 하나 생성합니다. 해당 폴더에는 Docker File과 복사 폴더가 들어갈 공간입니다.

mkdir my_mariadb

cd my_mariadb

먼저 MariaDB설치폴더에서 Data 라는 폴더를 복사해서 새로운 폴더안에 집어넣습니다.

mkdir mysql_data

cd mysql_data

xcopy D:\mariadb-10.6.7-winx64\data . /e /k /h

# 해당위치에 Dockerfile 생성

이번에는 IntelliJ환경에서 수정하지 않고 Vscode에서 작성하려합니다. 

// mysql_data 폴더에서 실행
code Dockerfile

# Dockerfile

FROM mariadb
ENV MYSQL_ROOT_PASSWORD test1357
ENV MYSQL_DATABASE mydb
COPY ./mysql_data /var/lib/mysql
EXPOSE 3306
ENTRYPOINT ["mysqld","--user=root"]

설정에 관련된 부분입니다. ENV 통해서 Defualt 패스워드와 DB명을 입력하고 저희가 생성한 폴더내용을 복사합니다!

마지막으로 mysqld 로 실행할 예정입니다. 

 

#Dockerfile build

docker build -t ggpark0315/mymariadb:1.0 .

 

#Docker run


이슈노트

image를 Run하기 전에 확인해야 할 사항이 있습니다.

먼저 Mysql은 높은확률로 백그라운드에서 3306 Port를 활용해서 이미 해당 포트를 사용중이기에 중복 포트 이슈로 실행이 안되는 경우가 많습니다.

먼저 cmd를 통해서 해당포트가 사용중인지 확인해줍니다. 

 

# netstat -a -o

다음으로는 해당포트를 종료시킵니다.

#taskkill /f /pid [pid] 

 


아래의 커맨드를 통해서 Container를 실행시킵니다.

 

docker run -d -p 3306:3306 --network ecommerce-network --name mariadb ggpark0315/mymariadb:1.0

잘 실행되었다면 로그에 다음과 같은 기록이 출력됩니다.


#Docker Container 접속

Container에서 돌아가는 것은 이제 알겠지만, 어떤식으로 활용할 수 있을지 궁금하신분들도 많을 겁니다. 

MariaDB뿐만아니라 대부분의 Container를 접속할때 아래의 양식으로 접속하게 됩니다. 

//docker exec -it [접속할 컨테이너] /bin/bash
docker exec -it mariadb /bin/bash

다음으로는 mysql에 접속하기 위해 다음과 같은 정보를 입력해줍니다.

mysql -h127.0.0.1 -uroot -p

Enter Password는 설정한대로 test1357로 접근합니다.

그럼 다음과 같이 MariaDB를 사용할 수 있는 쿼리창이 나오면 성공!

또한 모든 IP에서 해당 DB에 접근할 수 있는 쿼리문도 작성합니다.

grant all privileges on *.* to 'root'@'%' identified by 'test1357';

Flush를 통해서 작성을 완료합니다.

flush privileges;

해당작업을 완료하게 되면, 모든 IP에서 접근이 가능해집니다.


이번 시간에는 저번과 다르게 IntelliJ 를 사용하지 않고, MariaDB를 연동해봤습니다.

감사합니다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함