본문 바로가기
Application/Docker

mariaDB-server dockerfile 만들기

by eeeun:) 2022. 3. 29.
반응형

update : 설치 가능한 리스트를 업데이트 하기(패키지 업데이트가 아님)

upgrade : apt-get install로 설치한 패키지들을 최신 버전으로 업그레이드하기

mariadb-server : mariadb server를 사용할 것이기에 설치하기

 

-y : 설치 중 프롬프트에 대해 자동 yes로 응답하도록 설정.

apt-get update
apt-get -y upgrade
apt-get -y install mariadb-server

 

mariaDB server가 background에 도는 것을 foreground로 바꿔 docker가 꺼지지 않도록 해준다.

 

echo "\ndaemon off;" >> /etc/mysql/mariadb.cnf

 

mariaDB가 설치가 잘 되어 있으면 아래 경로에 mariaDB server config 파일이 있다.

이 파일을 열어 원하는 설정을 수정하면 된다.

/etc/mysql/mariadb.conf.d/50-server.cnf

 

기본 설정은 bind-address가 127.0.0.1이었다.

즉, localhost만 접속을 할 수 있는 상태였다.

모든 ip가 접속할 수 있도록 0.0.0.1로 바꿔주었다.

 bind-address            = 0.0.0.1

 

bind address에 대해 추가적으로 알고 싶다면 밑의 링크를 클릭!

 

mysql -u root --skip-password -e "CREATE DATABASE IF NOT EXISTS DB이름;"

-u : 뒤에 계정 이름을 적음

--skip-password : 비밀번호를 스킵하고 뒤에 쿼리문을 진행

-e : 쉘스크립트나 커맨드 라인에서 쿼리를 사용하게 해주는 옵션 (5.5 버전 이상에서는 안전하지 않다는 문구가 뜰 수 있음)

- IF NOT EXISTS : 어떤 데이터가 있으면 업데이트하고 없다면 새로 만들라는 명령어

 

mysql -u root --skip-password -e "CREATE USER '계정이름'@'IP' IDENTIFIED BY '비밀번호';"

계정 이름@ 뒤에 오는 % 는 모든 외부 IP에서 접근할 수 있게 해 준다.

localhost@127.0.% 이런 식으로 사용할 수 있다.

 

mysql -u root --skip-password -e "GRANT ALL PRIVILEGES ON DB명.* TO '계정이름'@'IP';"

GRANT ALL PRIVILEGES 명령어를 통해 위에 생성한 계정에 권한을 준다.

역시나 모든 외부 IP에서 접근할 수 있도록 %로 설정해줬다.

GRANT : 계정에 권한을 준다

ALL : 모든 권한 허용 = 관리자

 

GRANT 옵션을 추가로 보고 싶다면 밑의 링크 클릭!

 

mysql -u root --skip-password -e "FLUSH PRIVILEGES;"

FLUSH PRIVILEGES는 grant 테이블을 reload 하여 변경사항을 업데이트해주는 명령어이다.

GRANT 명령어로 사용자를 추가, 삭제, 변경해줬을 때는 사용하지 않아도 된다.

INSERT, DELETE, UPDATE를 통해 사용자를 추가, 삭제, 권한 변경 등을 수행하였을 때에는 이 변경 사항을 반영하기 위해 FLUSH PRIVILEGES를 해줘야 한다.

 

즉, 나는 위에서 GRANT 명령어로 사용자의 권한을 변경해줘서 FLUSH PRIVILEGES를 안 해줘도 되지만, CREATE USER를 유저를 생성해줬기에 GRANT 테이블을 reload 해줬다.

내 생각에는 GRANT로 권한 설정을 마지막으로 해줬기 때문에 reload를 안 해줘도 될 거 같은데.. 한번 테스트해봐야겠다.

 

 

user까지 만들어주고 mysql 서버를 구동해주면 끝!

service mysql start
728x90

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

docker & docker-compose network  (0) 2022.03.29
Docker에 ngnix 설치하기  (0) 2022.03.24
Docker 명령어 정리  (0) 2022.03.24
Debian에 docker-compose 설치하기  (0) 2022.03.24
Ubuntu에 docker 설치하기  (0) 2022.03.24

댓글