몇일 전에 회사 프로젝트를 하면서 Firebase 의 Functions 를 사용하였다가 프로그램의 특성상 10초만에 한번씩 폴링하는 방법으로 구현하였습니다.
이 방법은 사용료를 지불하는 방법인데 아직 서비스 이전이라 사용료가 안나갔으나, 소심함에 집에 여전히 같이 늙고 있는 나스에 Docker 를 이용해서 node.js 를 설치하여 사용해보니 개발용으로는 제법 괜찮은 방법인 듯 하여, 오늘 문득 재택근무 도중 업무시 자주 사용하는 MS-SQL Express 를 매번 설치하지 않는 방법을 시도해보기로 했습니다.
의식의 흐름대로 쓰는 듯한 ...
나름 원하는 개발 환경이 갖춰졌다 판단 하여 2021년 최신 판으로 히스토리를 남겨봅니다.
먼저 Docker 레지스트리에서 mssql 을 검색합니다.
물론 Docker 는 먼저 패키지에서 설치하셔야 합니다. 그리고 공유폴더나 사용 권한이 있는 home 디렉토리 하나 준비해주시면 됩니다. (아시겠지만 Docker 이미지와의 통로라고 보면 됩니다.)
대충 1GB 크기의 이미지가 설치되면 이미지 탭에 설치되어 있는 것이 보입니다. 실행을 누르게 되면 상세 설정이 나옵니다.
고급설정에서 몇개만 설정해 놓으면 끝납니다.
볼륨 탭을 선택하여 파일/폴더 에 아까 준비한 공유폴더 (저는 docker 라는 공유폴더 만들고 하단에 mssql 이라는 폴더를 만들었습니다.) 에 폴더 추가 버튼으로 선택합니다.
그리고 마운트 경로에 /var/opt/mssql 로 입력합니다.
포트 설정에서 컨테이너 포트는 귀찮으니 1433 으로 냅두시고 (기본 MS-SQL 포트입니다.) 로컬포트 만 변경해봅니다. (다른 서비스와 중복안되는 포트 번호 넣어 주시면 되는데 저는 기억하기 쉽게 앞에 보통 5나 6 넣습니다. 65535 안넘어가면 되는거겠죠?)
다른 옵션도 있는데 대충 위 두 라인만 입력하면 대충 되는 것 같습니다.
MSSQL_SA_PASSWORD 부분은 원하는 비밀번호를 입력해주세요. 원래는 복잡한 비밀번호를 요구하는데 테스트 해보니 대충 평범한 비밀번호도 되는 듯 합니다.
그리고 하단에 적용을 눌러주세요.
컨테이너 탭에서 보면 실행 중에서 정지도 되고 그러는데 Log 를 봐도 별다른 이유를 모르겠더군요. 다시 지우고 다시 설치하고 해보는 수 밖에 없습니다. 저도 몇번을 지웠다 설치했다 했습니다.
성공하셔야 합니다. 저는 성공했습니다. ㅎㅎ
일단은 이렇게 해놓고 접속을 해봐야 하는데 툴이 필요합니다.
Docker 검색되어 있는데 보면 mssql-tools 가 있습니다만... 복잡해서 별로 댕기지 않습니다.
인터넷 검색하셔서 SSMS (SQL Server Management Studio) 를 설치하시고 실행하세요.
저는 이미 설치되어 있는것이 있어서 2014 버전으로 테스트 해보았습니다.
서버 이름에는 나스 서버 주소에 쉼표 그리고 위의 로컬포트에 넣은 포트번호를 넣습니다. (그냥 1433 으로 하신분은 안넣어도 됩니다.)
그리고 암호에 아까 설정하신 암호를 입력하시고 연결을 누르세요.
성공했습니다.
쿼리도 잘 먹습니다.
이제 로컬에 설치해서 쓰던 db 를 attach 해봐야겠습니다.
File Station 이나 윈도우 탐색기나 아무거나 열어서 아까 설정한 docker 밑에 mssql 폴더를 보시면 폴더가 몇개 보이시는데
data 폴더에 쓰시던 mdf, ldf 파일을 복사하세요.
그리고 위의 쿼리 창에
sp_attach_db 'db_xxxx', '/var/opt/mssql/data/xxxx.mdf', '/var/opt/mssql/data/xxxx.ldf'
입력하세요.
실행하면 파일의 버전에 따라 업그레이드를 진행합니다.
완료 되었습니다.
그리고 외부에서 연결이 필요할 경우 공유기 포트 포워딩에 51433 (저의 경우입니다.) 하시면 될겁니다.
댓글
댓글 쓰기