[Synology NAS] docker에 mysql 설치해서 외부에서 사용하기 + Lost connection to MySQL server at 'reading initial communication packet, system error: 0 에러 해결

2022. 2. 18. 01:14Cloud

728x90

1. docker 설치

패키지 센터에서 docker 설치

docker 설치

2. docker에서 mysql 설치

docker에서 레지스트리 탭 선택 후 mysql 검색.

레지스토리탭에서 mysql 선택

더블클릭해서 원하는 버젼 선택 후 설치.

버젼 선택

나는 latest 하니까 알수없는 이유로 실행이 안되어서 5.7.9 버젼으로 설치했음. 특별한 이유가 없으면 똑같이 진행하는걸 추천.

이미지 탭에서 방금 설치한 레지스트리를 더블클릭해서 설정 진행.

mysql 컨테이너 생성 1

컨테이너 이름 정하고

고급 설정 → 포트설정 으로 들어가서

mysql 컨테이너 생성 2

원하는 포트 설정.

기본 포트는 3306이지만, 나는 학교에 NAS를 설치해서 쓸꺼라 전산소에서 5000~5002번 포트만 할당해줬기 때문에 5002번 포트로 설정했음.

설정한 포트는 나중에 포트포워딩 해줘야 할수도 있어서 기억해 놓아야 함.

mysql 컨테이너 생성 3

환경 탭으로 이동해서 환경 변수에

MYSQL_ROOT_PASSWORD

MYSQL_USER

MYSQL_DATABASE

MYSQL_PASSWORD

4개 추가.

이러면 컨테이너가 일단 도커에 올라는 갔을꺼임.

설치 성공

3. mysql 설정파일 수정

방금 2번 과정에서 포트를 3306에서 다른걸로 변경해준 사람은 바로 외부에서 mysql community 같은걸로 연결하려고 하면 "Lost connection to MySQL server at 'reading initial communication packet, system error: 0" 같은 오류가(...) 나올텐데 터미널 들어가서 설정파일을 만져줘야함.

안 건드렸으면 아래 과정은 생략하고 4번으로 넘어가면 됨.

컨테이너에서 실행중인 mysql 컨테이너 더블클릭 후 터미널 탭으로 이동.

터미널 생성 1

생성을 눌러서 터미널 생성

터미널 생성 2

vim이나 nano 같은 에디터도 안깔려있어서 설치를 해줘야함.

나는 vim으로 진행했음.

apt-get update

apt-get install vim

으로 vim 설치.

설치 했으면

vim /etc/mysql/my.cnf 입력해서 설정파일 수정

내리다 보면 포트 2개가 3306으로 되어있을텐데, 아까 설정한 포트로 수정

vim에서 수정은 i를 누르면 insert 모드 진입.

수정 후 esc를 누르고 :wq를 입력하면 저장, 종료됨.

그리고 mysql 컨테이너 껐다키면 됨.

4. 공유기 포트포워딩

나는 공유기에 NAS를 연결시켜 놔서 외부에서 접근하려면 포트포워딩을 해줘야 했음.

포트포워딩

내부 ip에 nas 아이피를 넣어주고, 원하는 외부포트, 내부포트를 주면 됨. 공유기 설정은 검색하면 많이 나오니 생략.

성공을 기원합니다.

++ 추가로 SSL 관련 오류가 나면

Advanced 탭으로 이동 후 Others 탭에

useSSL=0 입력.

SSL 오류 처리

 

728x90

'Cloud' 카테고리의 다른 글

[Windows] Apache 웹서버로 Vue.js, Spring Boot 연동  (4) 2022.12.06