[Database] M1 docker, MySQL 설치, 인텔리제이 연동
코드 삽입 부분은 과감하게 삭제했다.
docker 설치
homebrew
명령어 사용으로 설치docker-compose
,docker-machine
을 같이 설치해줌
$ brew install --cask docker
Docker MySQL 설치
- 나는 M1 Pro 맥북을 사용하고 있으므로
--platform linux/amd64
를 지정 후 설치 - mysql 8 버전 설치
- 비밀번호: 1234
docker run --platform linux/amd64 --name mysql -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1234 mysql:8.0.28
docker run
명령어는 컨테이너를 create 후, start 역할--name
옵션: 컨테이너 이름 지정- 이름이 중복되면 conflict
- 실행중인 컨테이너의 정보를 보려면
docker ps -a
커맨드로 확인 가능
-d
옵션: background에서 동작-p
옵션: port 매핑-e
옵션: environment 환경 설정 key, value 형태로 보냄
Docker MySQL 실행
- 요구사항에 따라
bash
로 실행
docker exec -it mysql bash
docker exec
명령어는 실행중인 컨테이너에, 그 뒤에 오는 명령어를 실행-i
옵션: STDIN 표준 입출력 오픈-t
옵션: 가상 tty(pseudo-TTY)를 통해서 접속
vim 설치
- docker container에서 vim 설치가 되어있찌 않으므로 아래의 명령어를 통해 설치
$ apt-get update
$ apt-get install vim
utf8 설정
- 컨테이너 접속
- vim 사용해서 /etc/mysql/my.cnf 파일 수정
root@32f08c0def9e:/# vim /etc/mysql/my.cnf
- 아래와 같은 내용 추가
[client]
default-character-set = utf8
[mysqld]
init_connect = "SET collation_connection = utf8_general_ci"
init_connect = "SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
[mysql]
default-character-set = utf8
- 위처럼 설정하면 아래와 같이 성공적으로
latin1
에서utf8
로 변경된 것을 확인할 수 있다.
MySQL 접속 확인
locale
- 사용 가능한 locale 확인 후
- MySQL 시간 설정
대용량 데이터 생성
USE mysql
명령어로mysql
DB를 사용한다.
nickname varchar(64),
money dec(10, 2),
last_visit datetime
- 위의 정보를 포함하는 user_log 테이블을 생성하는 명령어는 아래와 같다.
CREATE TABLE user_log
(
nickname varchar(64),
money dec(10, 2),
last_visit datetime
);
- TABLES 조회 결과 마지막 테이블에
user_log
가 있는 것을 확인할 수 있다.
MySQL Workbench
- docker VM IP 알아내는 명령어 사용
cs14
라는 스키마 생성
- 아래의 명령어로 test 입력
INSERT INTO user_log
values ('test', 10000.00, '2023-02-20');
- 오류 없이 조회 성공
MySQL Connector
- 내가 설치한 MySQL 버전은 8.0.28이므로 이 버전에 맞게 설치 후 라이브러리 경로를 설정해준다.
- import 성공
완전 갈아엎음
- 지금 몇시간을 날린지 난 모르겠다.. 5시간째 진척은 없고, 삽질만 엄청 하다가 겨우 해결
인텔리제이 DB 연동
- 구세주 일단 제일 먼저 인텔리제이 연동에 계속 실패를 하다가 겨우 이 사이트 명령어로 성공적으로 연동에 성공했다.
MySQL Enable LOAD DATA LOCAL INFILE
Reference
- docker docs
- Digital Ocean
- Udemy Docker
- 가장 쉽게 배우는 도커
- M1 MySQL
- locale < 어?
- Docker DB
- MySQL TABLES
- Public Key Retrieval is not allowed
- 구세주
- DBConnection Connection 1
- DBConnection Connection 2
- 신 Honux(bulk insert)
- LEFT(UUID(), 3)
- ORDER BY RAND() 튜닝
- 날짜 입력: from_unixtime / unix_timestamp
- 일 ~ 초 변환기
- JDBC DB 연결
- PreparedStatement in JDBC
Leave a comment