본문 바로가기
📋3-1/📌리눅스서버실습

[리눅스서버실습] - DB 서버

by 빛나고요 2021. 5. 9.
BIG

Study. DB 서버 

2. MariaDB 설치와 구축

📌데이터베이스 서버 설치 및 접속 확인

🔷 apt -y install mariadb-server mariadb-client 명령으로 MariaDB 설치

🔷 systemctl restart/enable/status mariadb 명령으로 서비스 가동

🔹 서비스 디렉터리: 우분투에 포함된 서버 패키지를 apt 명령을 실행해 설치하면 /etc/systemd/system/ 디렉터리 또는 그 하위 디렉터리에 '서비스이름.service' 또는 '서비스이름.socket'으로 등록. 이 서비스를 시작/중지 하려면 systemctl start/stop 서비스 이름 명령을 사용하고 상시 가동을 위해서는 systemctl enable 서비스이름 명령 사용

 

🔷ufw allow 3306 명령으로 MariaDB의 포트인 3306을 방화벽에서 허용

🔷mysql 명령으로 MariaDB 클라이언트 서버로 접속 (나는 sudo mysql 명령을 입력. 권한이 없기때문에 이후의 명령어 입력에서도 sudo을 이용하여 root권한을 빌려서 실행)

🔹일반, sudo, sudo su, sudo -s의 차이점

- 일반: 현재 계정이 아무런 권한이 없다면 명령어 실행이 불가능 할 수 있음

- sudo: 현재 계정에서 root의 권한만 빌려서 사용자가 명령어 실행

- sudo su: 로그아웃을 하지 않고 현재 계정에서 다른 사용자의 계정으로 전환시키고 shell은 그대로 출력

- sudo -s: 현재 계정에서 다른 사용자의 계정으로 전환시키고 shell도 전환된 사용자의 환경에 맞게 출력

📎참고: brownbears.tistory.com/227

 

🔷프롬프트에 MariaDB[(none)] 나와서  MariaDB 클라이언트 서버에 접속 성공& 데이터베이스 서버 설치 완료

🔹exit 명령으로 종료

 

🔹여기까지 했을 때 지금은 비밀번호 입력도 없이 mysql 명령어만 입력하면 바로 서버에 접속할 수 있기 때문에 데이터베이스 보안 문제가 발생할 수 있음. 이 문제를 위해 보안에 중요한 데이터베이스 관리자인 root의 비밀번호를 설정

🔷sudo mysqladmin -u root password '1234' 명령으로 데이터베이스 관리자인 root의 비밀번호를 1234로 변경

🔷sudo systemctl restart mariadb 명령으로 서비스 재시작

🔷이제 sudo mysql 명령만 입력해서는 접속이 Error가 난 것을 알 수 있음.

🔷sudo mysql -u root -p 명령으로 비밀번호를 이용하여 MariaDB서버에 접속

🔹exit명령으로 MariaDB 클라이언트 종료

🔷기본적으로 MariaDB는 외부에서 접속이 불가능하도록 설정되어있음. 그래서 gedit이나 nano 명령으로 /etcmysql/mairadb.conf.d/50-server.cnf 파일을 열어서 bind-address =127.0.0.1 부분 주석 처리 후 저장하고 닫음

🔷systemctl restart mariadb 명령으로 서비스 재시작

 

📌클라이언트 설치

🔷MariaDB 서버에 접속하기 위해서는 MariaDB 클라이언트가 필요함. 웹 브라우저에http://downloads.mariadb.org/mariadb/에 접속하여 Window용 MariaDB 클라이언트를 설치

🔷설치가 완료되면 Window의 검색에서 cmd를 검색하여 명령 프롬프트 실행

🔷MariaDB 클라이언트가 설치된 폴더로 이동시켜서 mysql 명령을 입력 ➠ 접속 실패(이유: 지금 내 컴퓨터에서는 MariaDB 클라이언트만 설치했을 뿐, MariaDB 서버는 설치하지 않았기 때문에 접속할 서버가 없어서 실행을 실패)

🔷서버에 접속하기 위해 mysql -h 서버IP주소 -u 사용자이름 -p 명령으로 접속하고 비밀번호 1234 입력 ➠ 접속 실패(이유: MariaDB는 이메일 주소와 비슷한 형식으로 사용자 이름을 사용하기 때문에 '사용자이름@호스트이름또는IP주소' 형식으로 사용자를 관리. 그래서 MariaDB 서버에서 root의 정식 이름은 root@localhost 였던 것. 그리고 Window에서 입력한 root 사용자의 정식 이름은 root@WindowsIP주소인데 MariaDB 서버에 접속이 허용된 DB 사용자는 root@localhost 또는 root@127.0.0.1 만 가능하기 때문에 root@WindowsIP주소는 접속이 거부된 것)

🔹그래서 root대신에 사용할 사용자를 새롭게 생성하여  그 사용자로 서버에 접속해야 함

 

📌사용자 생성

🔹호스트 운영체제(내 서버 주소)에서 접속할 사용자 생성

🔷터미널에서 mysql -u root -p 명령으로 MariaDB 서버 접속

🔷아래의 SQL문을 입력하여 시스템 데이터베이스인 mysql 데이터베이스에 있는 user 테이블 조회 

 USE mysql;
    SELECT user, host FROM user WHERE user NOT LIKE '';

🔷내 서버의 IP주소는 동적이기 때문에 재부팅할 때마다 IP주소가 바뀔 수 있음. 이를 해결하기 위해서는 GRANT ALL ON *.* TO winuser@'111.111.111.%' IDENTIFIED BY '4321'; SQL문을 입력하여 111.111.111.ㅇㅇㅇ으로 시작하는 IP주소 모두가 접속이 가능하게 사용자를 생성해야 함. (우리는 따로 만든 IP주소를 사용했기 때문에 전체를 %로 주었다.)

🔹이제 winuser로 암호 4321을 사용하면 %범위의 IP주소의 컴퓨터는 모두 접속이 가능

🔷다시 명령 프롬프트로 돌아가서 mysql -h 내서버IP주소 -u winuser -p 명령을 입력하여 winuser로 접속. 비밀번호는 4321

🔹내 서버(호스트 운영체제)로 접속 성공. exit 명령으로 종료

댓글