[Docker] MySQL 5.7 설치 및 데이터 import공부/DevOps2023. 4. 11. 19:22
Table of Contents
반응형
docker 설치
# 공식 사이트와 동일하다.
$ sudo apt-get remove docker docker-engine docker.io containerd runc
$ sudo apt-get update
$ sudo apt-get install ca-certificates curl gnupg
$ sudo mkdir -m 0755 -p /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# docker install
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
공식 사이트 링크. https://docs.docker.com/engine/install/ubuntu/
dokcer mysql 5.7 image 실행
5.7.12버전을 기존에 사용하고 있어 설치하여 사용
# sudo 대신 _ 사용해도 됨.
$ sudo docker search mysql
# 이미지 내려받기
$ _ docker pull mysql:5.7
# 이미지 확인
$ _ docker images
# container 실행
$ _ docker run --name mysql-local -e MYSQL_ROOT_PASSWORD={root비밀번호} -d -p 3306:3306 mysql:5.7
# container 상태 확인
$ _ docker ps -a
# container 접속
$ _ docker exec -it mysql-local bash
mysql 접속/테이블/계정 생성
# os 확인
$ cat /etc/*release
Oracle Linux Server release 7.9
...(이하 생략)
# mysql 접속/데이터베이스/계정/권한부여
$ mysql -uroot -p
password : {초기 설정 비밀번호 입력}
$ show databases;
$ create database test_db default character set utf8;
$ create user 'tester'@'%' identified by 'qwer1234!@#$';
$ grant all privileges on test_db.* to 'tester'@'%';
$ flush privileges;
$ use test_db
$ show tables;
sql 파일 DB import
파이프라인(|) 을 사용해서 여러개의 *.sql 파일을 import 한다
# 현 위치에 있는 폴더를 mysql-local container에 tmp폴더로 이동
$ _ docker cp {폴더명} mysql-local:/tmp
$ _ docker exec -it mysql-local bash
$ cd /tmp
# 파이프 라인으로 여러개의 *.sql 입력으로 넘겨서 import
$ cat *.sql | mysql -uroot -p test_db
TroubleShooting
1. timezone issue (UTC -> KST)
$ date
Mon Apr 10 06:28:52 UTC 2023
$ ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
$ date
Mon Apr 10 15:31:26 KST 2023
docker-compose나 dockerfile 에서 설정하여 container 실행하면 번거로움이 줄어듦
2. 한글깨짐 (character-set)
수정전
# 필요한 툴 설치
$ yum install net-tools vim -y
# mysql config 수정
$ vim /etc/my.cnf
[client]
default-character-set = utf8
[mysql]
default-character-set=utf8
[mysqldump]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8
#lower_case_table_names=1 // 대소문자 구분인데, SPRING_SESSION 관련 테이블 오류 발생하여 제거
수정후
참고
https://www.lesstif.com/lpt/ubuntu-linux-timezone-setting-61899162.html
반응형
'공부 > DevOps' 카테고리의 다른 글
[Docker] Container IP 확인 및 SSH 접속하기 (2) (0) | 2023.07.14 |
---|---|
[Docker] Jenkins 설치 및 Github 연동 (1) (0) | 2023.07.08 |
[oh-my-zsh] help command not found (0) | 2023.01.08 |
[oh my zsh ] git 사용시 index refreshing 되는 이슈 (0) | 2022.06.08 |
[Ubuntu] javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate (0) | 2022.01.15 |
@leejinwoo1126 :: 천천히 하나씩
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!