본문 바로가기
  • 마침표 보다 쉼표를 나타내자
서버/Docker

도커에 MySQL 설치후 외부접속

by Y코더 2023. 5. 4.
728x90

시스템 : 우분투 20.04

 

관리자 권한 su 입력후 진행한다.

 

이미지 다운

docker pull mysql

해당 코드 입력시 이미지가 다운됨

 

docker images

해당 코드 입력시 이미지를 조회함

 

 

컨테이너 생성

mkdir mysqldata

해당 코드 입력시 디렉터리 생성

 

docker run -d -p 3306:3306 --name mysql-container -e MYSQL_ROOT_PASSWORD=1234 -v ~/mysqldata/:/var/lib/mysql mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

해당 코드 입력시 컨테이너를 생성함

 

docker ps

해당 코드 입력시 컨테이너 생성을 확인 할수 있다.

 

 

컨테이너 접속

 

docker exec -it mysql-container bash

해당 코드 입력시 컨테이너에 접속하게 됨

 

mysql -u root -p

해당 코드 입력시 root 계정으로 접속됨

 

 

 

루트 계정 비번 변경

alter user 'root'@'localhost' identified with mysql_native_password by '변경할 비밀번호';

해당 코드 입력시 비번을 변경가능하다.

 

 

신규 계정 생성 ( root계정으로 접속 되어 있어야 한다. )

create user '계정명'@'%' identified by '비밀번호';

해당 코드 입력시 계정이 생성 된다.

 

그래서 계정을 로그인 하기위해 루트 계정을 종료 해야한다.

exit

를 치고 종료후 로그인 해보자.

 

mysql -u 계정명 -p

 

 

신규 데이터 베이스 생성

루트 권한이 필요하므로 아래의 구문을 입력한다

mysql -u root -p

 

create database 원하는데이터베이스명 default character set utf8;

해당 코드 입력시 데이터 베이스 생성됨

 

show databases;

해당 코드 입력시 데이터 베이스 목록을 띄움 ( 확인 하기 )

 

 

외부 접속을 위한 신규 계정 권한 설정

grant all privileges on 데이터베이스명.* to 계정명@'%';

해당 코드 입력시 모든 원격지에서 접속 권한이 허용 된다. ( ' . ' 확인 잘하기 )

 

grant all privileges on 데이터베이스명.* to 계정명;

해당 코드 입력시 신규 데이터 베이스 모든 권한 부여

 

flush privileges;

해당 코드 입력시 변경된 권한을 적용하게 된다.

 

 

포트 확인

mysql에서 확인할려면

show global variables like 'PORT';

를 입력하면 포트 3306이 활성화 된다.

 

 

 

접속 가능 포트 보기

netstat 를 쓰기위해 해당 코드를 입력하여 설치한다.

 

apt-get update

 

sudo apt install wget -y

 

sudo apt install net-tools

 

그리고 이제 포트를 보기위해 아래의 구문을 입력하고

 

netstat -tulpn

 

 

되어 있으면 완료 되었다.

그리고 공유기 설정에서 3306 포트를 포트포워딩을 해주면 된다.

 

 

편하게 보기위해서 DBeaver( 디비버 ) 를 설치하였다.

 

https://dbeaver.io/download/

 

Download | DBeaver Community

Download Tested and verified for MS Windows, Linux and Mac OS X. Install: Windows installer – run installer executable. It will automatically upgrade version (if needed). MacOS DMG – just run it and drag-n-drop DBeaver into Applications. Debian package

dbeaver.io

 

다 입력을 하고 나면

 

Public Key Retrieval is not allowed 이 뜨게 되는데

 

 

해당페이지로 들어가서

 

 

 allowPublicKeyRetrieval을

TRUE로 변경 해주면 된다.

 

 

우분투 서버 재부팅후 이미지 실행

docker start -ai mysql-container

해당 구문을 입력하면 만들어진 컨테이너를 실행 시킬수 있다.

728x90

'서버 > Docker' 카테고리의 다른 글

스프링부트 배포하기  (2) 2023.05.21
도커 설치  (1) 2023.05.12
MySQL 유저 비밀번호 변경  (0) 2023.05.04
도커 설치  (0) 2023.05.04
도커를 배워 보자  (0) 2023.05.04