Go, Vantage point
가까운 곳을 걷지 않고 서는 먼 곳을 갈 수 없다.
Github | https://github.com/overnew/
Blog | https://everenew.tistory.com/
티스토리 뷰
실습 환경
Ubuntu Server에 maria DB를 설치하고, 내부 망에서의 접속과 Real PC에서의 접속을 시도해 보자.
이를 위해 Ubuntu Server는 NAT와 host only adapter를 끼워주고, window 10과 ubuntu-desktop은 host only adapter만 적용하여 내부통신만 가능한 상태로 만들자.
ubuntu-desktop은 offline 상태에서 mariadb client 설치 파일을 옮겨주어 설치할 것이다.
Ubunutu Server에 MariaDB 설치
외부 Server를 못 찾는 다면, DNS 서버 ip가 저번 실습에서 유지되어 있을 수 있다.
/etc/resolv.conf 에 nameserver 주소를 8.8.8.8로 바꿔주고 재시작하자.
다운로드를 위한 NAT 어댑터를 끼고 시작하자.
설치 순서
1. 설치 전 패키지 업데이트
Sudo apt update
Sudo apt upgrade
2. 서버, 클라이언트 설치
sudo apt install mariadb-server # MariaDB 서버 설치
sudo apt install mariadb-client # MariaDB 클라이언트 설치
3. 클라이언트 설치 후 설정
sudo mysql_secure_installation #설정
4. Root 비밀번호를 입력해 준다.
root 접속을 위한 비밀번호를 입력하세요.
Enter current password for root (enter for none):
5. 나머지 설정은 취향이지만 처음이라면 N을 추천한다.
다양한 것을 물어보지만 거절해 주자.
특히 중간에 Disallow root login remotely? 에 대해서 물어보는데, 거절해 주어야, 이후 실습에서 root로 접속할 수 있다.
6. 설정이 끝나면 아래와 같은 명령어가 나온다.
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
7. 기본적인 MariaDB 명령어
systemctl enable mariadb # MariaDB 활성화
모두 크리티컬 하여 비밀번호를 입력해 주어야 한다.
systemctl start mariadb # MariaDB 시작
systemctl status mariadb # MariaDB 상태 확인
(정상 동작 중이다.)
sudo systemctl stop mysql # MariaDB 중지
sudo systemctl restart mysql # MariaDB 재시작
sudo service mariadb start #systemctl를 못 쓰는 상황이라면 service 명령어를 사용
MariaDB Client 설치 의존성 문제
ubuntu -d에게 client 파일을 옮겨줘야 한다.
이는 server에서 설치한 파일과 동일한 파일을 설치해 주자.
패키지는 install 하지 않고 데이터만 다운로드할 수 있다.
apt-get download mariadb-client
이제 이 파일을 desktop으로 보내주자. 우리는 scp를 활용한다.
SCP는 파일이나 폴더를 SSH로 안전하게 복사시키는 명령어이다.
scp [옵션] [파일명] [원격지_id]@[원격지_ip]:[받는 위치]
옵션에 -r을 넣으면 디렉터리까지 한 번에 전송가능하고,
-p 옵션을 넣으면 ssh의 22번 port가 아닌 다른 port 번호로 지정해 줄 수 있다.
scp 경로/mariadb-client_1%3a10.6.12-0ubuntu0.22.04.1_all.deb jin@192.168.10.4:경로/mariadb-client_1%3a10.6.12-0ubuntu0.22.04.1_all.deb
문제는 그대로 설치하면 종속성 문제로 오류가 발생한다.
종속성이 있는 다른 패키지는 설치해주지 않았기 때문이다.
이를 해결해 보자.
MariaDB Client 의존성 파일 다운로드/설치
일단 의존성 문제를 제대로 인식하려면, dpkg와 apt-get에 대한 이해가 있어야 한다.
dpkg
dpkg는 데비안 패키지 관리 시스템의 기초가 되는 소프트웨어로서, .deb 패키지의 설치, 삭제, 정보 제공을 위해 사용되는 명령어이다.
Ubuntu도 데비안 계열이기 때문에 수동 설치를 위해 dpkg를 사용하였다.
apt-get(Advanced Packaging Tool)
Apt는 /etc/apt/sources.list에 저장된 다운로드 url을 통해 외부 서버에서 다운로드를 받아 dpkg로 설치해 준다.이때 해당 패키지에 종속성이 있는 경우 필요한 다른 패키지도 모두 받아 설치된다.
Ubuntu mariaDB client를 예시로 확인하기 위해 아래의 url에 접속해 보자.
해당 deb 파일을 다운로드할 수 있는데, 스크롤을 더 내려보면 필요한 패키지가 보인다.
이러한 패키지들이 apt-get으로 install하는 경우 모두 자동으로 받아와서 설치된다.
우리는 이것을 일일이 받아오기보단, apt-get의 의존성 다운로드를 이용해 보자.
NAT로 인터넷과 연결된 Ubuntu server에서 아래 명령어로 mariaDB Client 설치에 필요한 의존성 파일을 모두 다운로드하자.
sudo apt-get reinstall mariadb-client --download-only -o Dir::Cache="/home/jin/dependence/" -o Dir::Cache::archives="./"
이 명령어를 통해 install이 아닌 데이터 파일만 다운로드해올 수 있다.
sudo apt-get --download-only -o Dir::Cache="/path/to/destination/dir/" -o Dir::Cache::archives="./" reinstall package_name
10개의 파일이 의존성 순서대로 다운로드되었다.
다 옮기려면 한참 걸리니 mobaXterm으로 설치할 ubuntu-desktop에 옮겨주었다.
이 순서대로 설치하면 모두 설치가 된다.
이 순서는 apt가 다운로드하여온 순서이므로 의존성 순서와 부합하다.
sudo dpkg -i libdbi-perl_1.643-3build3_amd64.deb
sudo dpkg -i mysql-common_5.8+1.0.8_all.deb
sudo dpkg -i libmysqlclient21_8.0.35-0ubuntu0.22.04.1_amd64.deb
sudo dpkg -i libdbd-mysql-perl_4.050-5ubuntu0.22.04.1_amd64.deb
sudo dpkg -i mariadb-common_1%3a10.6.12-0ubuntu0.22.04.1_all.deb
sudo dpkg -i libmariadb3_1%3a10.6.12-0ubuntu0.22.04.1_amd64.deb
sudo dpkg -i libconfig-inifiles-perl_3.000003-1_all.deb
sudo dpkg -i mariadb-client-core-10.6_1%3a10.6.12-0ubuntu0.22.04.1_amd64.deb
sudo dpkg -i mariadb-client-10.6_1%3a10.6.12-0ubuntu0.22.04.1_amd64.deb
sudo dpkg -i mariadb-client_1%3a10.6.12-0ubuntu0.22.04.1_all.deb
Ubuntu Server에서 MariaDB 보안 설정
mariaDB를 외부에서 접근하게 해 주려면 설정이 필요하다.
/etc/mysql/mariadb.conf.d/50-server.cnf 파일에서 bind-address를 localhost에서 0.0.0.0인 모든 host로 바꾸어주자.
그리고 root 계정에 대해서 외부에서 접근 허용 권한을 주자.
grant all privileges on *.* to 'root'@'192.168.%.%' identified by 'root';
FLUSH PRIVILEGES;
이후 재시작해주자.
sudo systemctl restart mysql
이러면 같은 네트워크 대역대인 ubuntu desk에서 접속이 된다.
sudo mariadb -h 192.168.10.3 -u root -p<비밀번호>
Real pc에서 VM MariaDB 접속
Server의 host only adapter의 ip인 192.168.10.3으로 접속하자.
정상 접속이 된다.
유저 만들어 접속하기
아래의 명령어로 어디에서든 접속이 가능한 mzc 유저를 만들었다.
create user 'mzc''%' identified by 'mzc';
Database를 확인해 보면 만든 유저가 확인된다.
만든 유저로도 접속 테스트를 해보자.
잘 접속이 된다.
'개발 > 네트워크 & Ubuntu' 카테고리의 다른 글
[On-premise] Ubuntu server로 구성하는 Web 3Tier 아키텍처 (0) | 2024.02.02 |
---|---|
[Ubuntu server] 배스천 호스트로 DB server 접속하기 (0) | 2024.01.31 |
[GNS3] DHCP 서버를 ip helper-address로 다른 네트워크에서 사용하기 (1) | 2024.01.25 |
Router ACL 적용해보기 (2) | 2024.01.25 |
[GNS3] OSPF와 NAT로 네트워크 구성하기 (0) | 2024.01.23 |