[docker] mysql container 띄우기

ms-shin·2022년 10월 3일
0

docker

목록 보기
1/5

진행 과정 에러

에러가 나는 표면적인 원인은 로컬에 설치해놓은 mysql이 실행되어있었고, docker에서도 동일한 3306포트로 바인딩했다. 보통 이미 사용 중인 포트로 container 실행 과정에서 에러가 났어야 했는데 왜 안났는지 모르겠다. 다음 포스팅으로 아래의 근원적인 원인을 파헤쳐봐야겠다.

mysql 접근 권한 문제를 겪게 되면 아래 스크립트에서 3307:3306으로 변경 또는 로컬 mysqld stop을 해주면 해결된다.


docker-compose.yml파일을 통해 mysql을 띄우기 위한 스크립트.

version: "3" # 버전 지정
services: # 컨테이너 설정
  db:
    image: mysql:latest
    container_name: mysql-server
    ports: # -p 옵션 (포트 연결 설정)
      - "3306:3306"
    environment:
      MYSQL_ROOT_PASSWORD: root123
    command: # 명령어 실행
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    volumes:
      - ./data/:/var/lib/mysql # -v 옵션 (다렉토리 마운트 설정)

docker-compose로 띄우기

docker-compose up -d

docker container 확인

docker ps

docker container 접속

 docker exec -it mysql-server bin/sh

root암호 를 사용하여 서버에 연결 합니다.

(아래와 같이 나오면 서버 접속 성공)

sh-4.4# 
mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \\g.
Your MySQL connection id is 12
Server version: 8.0.30 MySQL Community Server - GPL

Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.

mysql>

** root 암호를 변경하기 위해서는 아래를 참고하면 된다.
https://dev.mysql.com/doc/refman/8.0/en/default-privileges.html

mysql table 확인

show databases;

mysql database 만들기

create databases godok;

user 생성 및 권한 설정

: 특정 database에 사용할 수 있는 user를 생성하여 권한을 한정하도록 만들어준다.

유저 생성

create user 'godoksajang'@'%' identified 'godoksajang123';

권한 설정 보기

show grants for 'godoksajang'@'%';

유저 권한 설정하기

grant all privileges on 'godok.*' to 'godoksajang'@'%';

권한 설정 보기

show grants for 'godoksajang'@'%';
참조 : https://computer-science-student.tistory.com/514
profile
지식을 깊게 파고드는 개발자입니다.

0개의 댓글