방명록
- [Network | Docker] 데이터베이스 외부 원격 접속2024년 07월 03일 15시 08분 51초에 업로드 된 글입니다.작성자: 이주여이
게시글 작성 기준으로 현재는 호스트 PC에서 접속했지만 이후 외부에서 원격으로 접속해야 한다면 공유기에서 포트 포워딩을 해주면 될 것 같다. 🐳🌊
1. 테스트용 컨테이너 생성
> docker run -d \ # 백그라운드 실행 > --name mysql \ # 컨테이너 이름 > -p 3308:3306 \ # 포트 매핑(외부에서 3308 포트로 들어오면 내부 3306 포트로 매핑된다) > -e MYSQL_ROOT_PASSWORD=${password } \ # root 비밀번호 지정 > -e MYSQL_DATABASE=test \ # 테스트용 데이터베이스 생성 > mysql:5.7 # 이미지
2. 외부 접속 허용 설정
> docker ps -a > docker exec -it mysql /bin/bash # 위에서 만들었던 컨테이너의 쉘에 접속 > mysql -u root -p # 컨테이너 내에서 root 계정으로 mysql에 로그인 > grant all privileges on *.* to '${계정명 }'@'%'; > flush privileges;
grant all privileges on *.*
- 모든 데이터베이스와 모든 테이블에 대해 모든 권한을 부여to '${계정명 }'@'%'
- 특정 계정이 모든 호스트에서 접속 가능하도록 설정
데이터도 한번 넣어보자.
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | | test | +--------------------+ 5 rows in set (0.00 sec) mysql> use test; Database changed mysql> create table test_tbl ( \ -> id int unsigned auto_increment primary key, \ -> name varchar(30) not null \ -> ); Query OK, 0 rows affected (0.05 sec) mysql> insert test_tbl(name) values('lee juyoung'); Query OK, 1 row affected (0.02 sec) mysql> select * from test_tbl; +----+-------------+ | id | name | +----+-------------+ | 1 | lee juyoung | +----+-------------+ 1 row in set (0.00 sec)
3. 접속 테스트
호스트 PC에서 mysql workbench를 통해 접속 테스트를 진행한다. hostname은 가상 서버의 ip이며 port는 컨테이너 생성 시 컨테이너 내부 mysql 포트와 매핑한 포트 번호이다. 그리고 username과 password는 docker에서 mysql 이미지로 컨테이너 만들 때 사용했던 username과 password를 사용하면 된다.
컨테이너 내에서 mysql 접속 후 만들었던 테이블과 데이터가 출력되는 것을 확인할 수 있다!
'Network > Docker' 카테고리의 다른 글
[Network | Docker] 이미지 (0) 2024.07.04 [Network | Docker] 네트워크 (0) 2024.07.03 [Network | Docker] 볼륨 (0) 2024.07.02 [Network | Docker] 컨테이너 애플리케이션 구축 (0) 2024.06.30 [Network | Docker] 컨테이너 외부 노출 (0) 2024.06.30 다음글이 없습니다.이전글이 없습니다.댓글