Docker를 이용한 Mysql 컨테이너 설치
Mysql 설치
1. Mysql 이미지 다운
docker pull mysql:[version]
2. Mysql 컨테이너 생성
docker run -dit -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 --name [container name] mysql:[version]
// root 계정의 비밀번호를 초기화해줘야 컨테이너가 실행된다.
- -dit : -d -i -t 옵션을 한 번에 적용 시킨 것
- -e : 컨테이너에 환경 변수를 설정,
- -e MYSQL_ROOT_PASSWORD=root → root 계정의 비밀번호를 root로 설정
- -e MYSQL_USER : user → user라는 이름의 계정을 생성
- -e MYSQL_PASSWORD : user → 계정의 비밀번호를 설정
2-1. Mysql 계정 비밀번호 변경
- Mysql DB 선택
USE mysql
- 기존 계정 정보 확인
SELECT host, user FROM user;
- 비밀번호 변경
ALTER user '[계정 이름]'@'[Host]' IDENTIFIED WITH mysql_native_password BY '[변경할비밀번호]';
- 변경 사항 저장
FLUSH PRIVILEGES;
3. 테스트를 위해 Mysql에 db, table 생성
- mysql 컨테이너 접속
docker exec -it [mysql 컨테이너 이름] /bin/bash
- 현재 실행 중인 컨테이너는 docker ps로 확인
- 모든 컨테이너를 확인하려면 docker ps -a
- mysql 접속
mysql -u root -p
- 해당 명령어를 입력하고 비밀번호를 입력하면 접속 가능(비밀번호는 입력이 안보임)
- dockerTestDB 이름의 데이터베이스 생성
CREATE DATABASE dockerTestDB;
- mysql에서 dockerTestDB를 사용하도록 설정
USE dockerTestDB
- dockerTestDB 안에 test 테이블 생성
CREATE TABLE test(name varchar(10));
- test 테이블에 값 삽입
INSERT INTO test value('testvalue');
- test 테이블 값 확인
SELECT * FROM test;
4. Mysql 계정 권한 설정
mysql> CREATE USER userid@'%' IDENTIFIED BY 'password'; -> 기존에 만들어둔 계정이 없으면 생성
mysql> GRANT ALL PRIVILEGES ON dbname.* TO userid@'%';
mysql> FLUSH PRIVILEGES;
버전이 바뀌면서 문법이 바뀜
4-1. Mysql 계정 권한 설정 에러
mysql> GRANT ALL PRIVILEGES ON dbname.tablename TO userid@'%' IDENTIFIED BY 'password';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'password'' at line 1
'Docker' 카테고리의 다른 글
[Docker] Docker에 Tomcat 설치하기 (0) | 2023.04.26 |
---|