티스토리 뷰
로컬에서 도커 이미지로 MySQL을 실행하고 user 생성 및 데이터베이스 생성 후 권한을 부여하는 방법을 살펴보겠습니다.
일단, 먼저 도커 설치는 마무리가 된 것으로 생각하겠습니다.
1. docker-compose.yml 파일 생성
아래와 같이 docker-compose.yml 파일을 작성합니다.
version: "3"
services:
db:
image: mysql:latest
container_name: mysql-server
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root123
command: # 명령어 실행
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- ./data/:/var/lib/mysql # -v 옵션 (다렉토리 마운트 설정)
2. docker-compose 명령 실행
아래 명령을 통해 도커 이미지를 컨테이너로 띄웁니다.
$ docker-compose up -d
3. docker 컨테이너 내 bash 접속
아래 명령을 통해 현재 실행된 컨테이너의 bash에 접속합니다.
$ docker exec -it CONTAINER_NAME bash
4. mysql 접속
아래 명령어를 통해 root 사용자로 mysql에 접속합니다. 비밀번호는 docker-compose.yml 파일에 정의한 MYSQL_ROOT_PASSWORD를 입력하면 됩니다.
root@343gkj2g3:/# mysql -u root -p
5. database 확인 및 생성
아래 명령을 통해 데이터베이스를 확인하고 새로운 데이터베이스를 추가합니다.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.01 sec)
mysql> create database test_db;
Query OK, 1 row affected (0.01 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
| test_db |
+--------------------+
5 rows in set (0.00 sec)
6. user 확인 및 생성 후 데이터베이스에 대한 권한 부여
아래 명령들을 통해 새로운 testuser를 생성하고 위에서 생성한 test_db에 대한 모든 권한을 부여합니다.
mysql> select host, user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
5 rows in set (0.00 sec)
mysql> create user 'testuser'@'%' identified by 'testuser123';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for testuser@'%';
+----------------------------------------+
| Grants for testuser@% |
+----------------------------------------+
| GRANT USAGE ON *.* TO `testuser`@`%` |
+----------------------------------------+
1 row in set (0.00 sec)
mysql> grant all privileges on test_db.* to testuser@'%';
Query OK, 0 rows affected (0.01 sec)
mysql> show grants for testuser@'%';
+--------------------------------------------------------+
| Grants for testuser@% |
+--------------------------------------------------------+
| GRANT USAGE ON *.* TO `testuser`@`%` |
| GRANT ALL PRIVILEGES ON `test_db`.* TO `testuser`@`%` |
+--------------------------------------------------------+
2 rows in set (0.01 sec)
이렇게 한 뒤, DataGrip이나 다른 DB Client 툴을 통해 새로 생성한 user와 database로 접속이 가능합니다. 이후 테이블 생성 등과 관련해서는 DataGrip을 사용할 예정입니다.
'기타' 카테고리의 다른 글
[Gitlab] ssh key 생성 및 등록 (0) | 2022.03.01 |
---|---|
Docker 기본 명령어 (0) | 2022.02.12 |
Github 사용하기 - 동시에 여러 작업 진행 (0) | 2020.03.07 |
Github 사용하기 - Local에서 Branch 이용 (0) | 2020.03.07 |
Github 사용하기 (0) | 2020.03.07 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- BFS
- map
- 프로그래머스
- CodeDeploy
- cloudfront
- SWIFT
- AWS
- Baekjoon
- EC2
- Combination
- 소수
- permutation
- ECR
- java
- Dynamic Programming
- search
- DFS
- array
- CodeCommit
- 순열
- sort
- 조합
- Algorithm
- spring
- 수학
- ionic
- CodePipeline
- programmers
- string
- 에라토스테네스의 체
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함