-
docker 로 mysql 설치하고 접속하기docker 2021. 11. 7. 20:05
mysql 설치 & 실행
아래 script 로 mysql DB 설치&실행
#!/bin/bash MYSQL_DIR={MY_MYSQL_DIR} docker run -d \ --cap-add=sys_nice \ --name mysql \ -v $MYSQL_DIR/data:/var/lib/mysql \ -v $MYSQL_DIR/conf:/etc/mysql/conf.d \ -p 3306:3306 \ -e TZ=Asia/Seoul \ -e MYSQL_ROOT_PASSWORD={MY_PASSWORD} \ mysql:8.0.26
$MYSQL_DIR/conf/mysql.cnf 파일을 생성해 둔다.
예제)
[mysqld]
mysql 에 접속해 보기
docker exec -it mysql mysql -u root -p{MY_PASSWORD}
localhost 가 아닌 외부에서 접속시 아래와 같은 에러가 날 수도 있다.
Public key retrieval is not allowed
여기 에서 처럼 JDBC driver 설정에 useSSL=false&allowPublicKeyRetrieval=true 를 추가하도록 한다.
admin 계정 생성하기
개발용으로 사용할 계정을 admin 으로 생성하고, superuser 권한을 부여한다.
CREATE USER 'admin'@'%' IDENTIFIED BY 'MY_PASSWORD'; GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; SHOW GRANTS FOR admin;
Slow query logging 설정하기
SQL 로 설정 여부 확인
show variables like 'slow_query%'
$MYSQL_DIR/conf/mysql.cnf 설정
1초 이상(long_query_time=1) Query 를 로그에 남긴다.
[mysqld] slow_query_log = 1 long_query_time = 1 slow_query_log_file = /var/run/mysqld/mysql-slow.log
MySQL 서버 재시작
docker restart mysql
Slow Query 테스트
select sleep(2)
docker container 에서 /var/run/mysqld/mysql-slow.log 를 확인한다.
'docker' 카테고리의 다른 글
docker error "TLS handshake timeout" (0) 2022.06.24 docker 로 kafka 설치 (0) 2021.12.22 docker 로 postgresql 설치하고 접속하기 (0) 2021.11.07 docker container 에서 zombie 프로세스 발생 문제 (0) 2021.10.14 동일한 docker image 를 사용했는데 실행 결과가 다르다? (0) 2021.07.31