개발공부/Docker

[Docker] MySQL 접속하기 및 로컬호스트 접속 오류해결

Michelle Kim 2023. 12. 8. 17:00
docker exec -it [container-name] bin/bash
mysql -u root -p
USE [database명];
SHOW TABLES;

이때 비밀번호는 도커파일에서 작성한 비밀번호를 입력해주면 된다

services:
  database:
    image: "mysql"
    restart: always
    container_name: database
    environment:
      MYSQL_DATABASE: traveleye
      MYSQL_ROOT_HOST: "%"
      MYSQL_ROOT_PASSWORD: 1234
      ports:
        -"3307:3306"
      volumes:
        -./:/var/lib/mysql

 

이때, root 가 없는 호스트라는 오류가 생겼는데 이를 해결하기 위해서

 

1. root 에게 모든 권한을 주는 코드를 Dockerfile 에 추가했다

CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON *.* TO 'your_user'@'%';
FLUSH PRIVILEGES;

 

2. 오타를 고쳐줬다.. 

MYSQL_HOST -> MYSQL_ROOT_HOST로 변경해주었다.

ENV MYSQL_ROOT_PASSWORD=""
ENV MYSQL_DATABASE="traveleye"
ENV MYSQL_ROOT_HOST="%"

 

다음과 같은 작업을 하고 다시 gradle build를 하니 정상 작동했다 :)