[Ubuntu] WSL MariaDB 서버 환경 구성 2/2
설정순서
- ubuntu 초기 설정
- mariaDB 기본 설정
- mariaDB 외부 접속 설정
저번글은 wsl, ubuntu 18.04, mariaDB, heidiSQL 설치에 관하여 다루었고 이번글에서는 설치한 프로그램으로 작업환경 구성하는 방법을 설명하도록 하겠습니다. 👌
1. ubuntu 초기 설정
- root 비밀번호 설정
wsl을 설치하고 최초 접속을 하면 자동으로 사용자 계정으로 접속이 됩니다. 관리자(root) 비밀번호를 설정합니다. 중요한것은 다들 아시죠? 방법은 아래 두가지 방식이 있습니다.
- 윈도우 터미널 : wsl -u root
- 우분투 터미널 : #sudo passwd root
- 네트워크 설정
네트워크 이름과 ip를 확인하는 방법을 알아봅니다. 확인해본 결과 Static IP를 사용하기 위해 네트워크 yaml 파일을 추가하여도 재부팅이 되면 설정값이 날라갑니다. 확인이 되기 전에는 Static에 관련된 설정은 안하도록 하겠습니다. 브릿지 모드와 포트포워딩 방법은 추후 시간이 되면 설명하도록 하겠습니다.
- 네트워크 확인
- WSL 접속 전 이더넷 이름 및 IP 확인
- C:\>wsl ifconfig
** 브릿지 : hyper-v 어댑터 설정하는 방법(추후)
** 포트포워딩 : wsl2를 이용하여 설정하는 방법(추후)- 언어 설정
설치 시 선택한 언어 외 다른 언어를 사용하기 위하여 언어 패키지를 설치하여 변경하는 방법입니다. wsl은 기본 영문에 utf-8인코딩을 사용합니다. 한국어팩을 설치해 보고 적용합니다.
- 언어 확인 : #locale
- 언어 설정 파일 위치 : /etc/default/locale
- 한글 패키지 설치 및 적용 :
- #sudo apt-get install language-pack-ko
- #sudo apt-get install fonts-unfonts-core fonts-unfonts-extra fonts-nanum fonts-nanum-coding fonts-nanum-eco fonts-nanum-extra fonts-noto-cjk
- #sudo update-locale LANG=ko_KR.UTF-8 LC_MESSAGES=POSIX
- 시간 동기화 및 시간대 설정
시간을 소수점까지 정확한 단위의 동기화가 필요하다면 ntp를 이용하여야 한다. ntp는 udp 123 포트를 사용한다.
- ntp 확인 : #ntpq -p
- ntp 설정 파일 위치 : /etc/ntp.conf
- ntp 설치 : #sudo apt-get install ntp
- ntp 시작/재시작/중지 : #sudo service ntp [start/restart/stop]
- /tmp, /var/tmp 공유 모드 설정
sticky bit는 특정 디렉토리를 누구나 자유롭게 사용할 수 있게 하기 위해 설정합니다. 주로 공용 디렉토리에 사용하며 sticky bit가 적용되면 소유자와 관리자 권한이 아니면 삭제 변경은 할 수 없습니다.
- sticky bit 확인 : #ls -al
- sticky bit 적용 : #sudo chmod 1777 /tmp /var/tmp
- 개발중 iptables 보안
iptables는 ubuntu에 포함된 방화벽 도구입니다. iptables를 이용하여 다양한 방화벽 설정이 가능하나 사용하는 방법을 적기에는 내용이 많아 설정/해제 부분만 기재합니다. 기본적으로 모든 포트 비활성에 특정 포트만 여는 방법과 모든 포트를 활성하고 특정 포트만 닫는 방법을 많이 사용합니다. 보안에서는 화이트 리스트(positive)와 블랙 리스트 (nagative) 방법으로 불립니다.
- iptables 규칙 확인 : #sudo iptables --list
- iptables 시작/중지/다시시작/저장 : #sudo service iptables [start/stop/restart/save]
** wsl ubuntu 18.04에서는 ufw가 설치되어 있습니다.
** ufw 상태확인 : #sudo ufw status verbose
** ufw 시작/중지 : #sudo ufw [enable/disable]
2. mariaDB 기본 설정
- secure script 설정
- #sudo mysql_secure_installation
- 보안관련 작업 스크립트를 실행합니다. root 비밀번호, anonymous 제거, test database access 제거 등 보안에 관련 된 스크립트입니다. 특별한 경우 빼고는 모두 Y를 눌러 진행합니다. (root 비밀번호를 설정하면 unix_socket과 mysql_native_password방식을 사용할 수 있다.)
- #sudo mysql 또는 #sudo mysql -u root -p 둘다 가능
- DB 구조 및 테이블 구조 확인
- show databases;
- use database name;
- show tables;
- select * from table name;
3. mariaDB 외부 접속 설정
- 설정 파일 위치 : /etc/mysql/mariadb.conf.d/50-server.cnf
- #bind-address 127.0.0.1 로 주석처리(#) 되있는지 확인 또는 0.0.0.0으로 변경
- DB 접속 : #sudo mysql -u root -p
- 외부접속 sql 실행
- mysql> create user 'root'@'%' identified by '비밀번호';
- mysql> grant all privileges on *.* to 'root'@'%' with grant option;
- mysql> flush privileges;
** root 계정 외 따로 생성한 계정으로 사용하려면 root 문구를 변경하세요.
- 외부 접속 포트 설정
- ufw 3306 포트 허용
- in 허용 : #sudo ufw allow in 3306/tcp
- out 허용 : #sudo ufw allow out 3306/tcp
- 포트 확인 : #sudo netstat -ntlp | grep mysqld
- mariaDB 재시작
- #sudo /etc/init.d/mysql restart
** mariaDB는 mysqlDB와 마찬가지로 3306 포트를 사용합니다.
- 접속 테스트
- 환경구성 1/2에서 윈도우에 설치한 heidiSQL로 접속 테스트를 합니다. 입력란에 네트워크 설정 ip주소, 외부 접속 설정 root, 비밀번호를 넣고 외부 접속 포트를 입력하고 open버튼을 눌러 접속하면 아래와 같이 접속이 잘됩니다.
여기까지 DB서버 환경 구성이 끝났습니다. ubuntu에 대해서 조금 더 이해하고 알아볼 것들이 있습니다. 간단하게 명령어를 치면서 따라해 주셨는데 의미는 이해하지 못하고 넘기셨을것 같습니다. 😊 다음글은 ubuntu 관련하여 글을 게시하도록 하겠습니다. 헷갈리는 부분은 문의하기에 남겨주세요.
블로그 유틸리티 페이지의 개발 환경 구성까지 내용이고 개발 작업 순서 글로 이어집니다.
ps. 인터넷이 불량하여 자료들이 업로드 되지 못하고 있습니다. 빠른시일내 채워놓고 추신글은 지우도록 하겠습니다. 😢😢😢
history
20230103 : ps 삭제 및 글 추가
20231007 : 목록 네비게이션 추가