Day_03 (DB 서버 초기 설정 및 접속)

HD.Y·2023년 11월 2일
0

한화시스템 BEYOND SW

목록 보기
3/58
post-thumbnail

DB 서버 초기 설정하기

  • 오늘은 mysql 서버를 리눅스에서 설치하고 접속하는 방법에 대해 알아볼까 한다.
  • 먼저 VMware 가상 머신을 통해 리눅스 환경에서 IP를 설정해 준다.
    ( IP 설정하는 것은 이전에 실시한 내용으로 여기서는 생략하겠다. )
  • 설정이 끝났다면 mysql 서버를 설치해준다.
    설치 명령어 : yum install -y mysql-server
    정상 설치 여부 확인 : rpm -qa | grep mysql
  • 설치가 정상적으로 끝났다면 mysql 서버를 실행 한다.
    실행 명령어 : systemctl start mysqld
  • 실행 후 서버가 정상적으로 설치됬고, 실행되고 있는지 확인하기 위해 3가지를
    체크해본다✅
    1. 프로세스 확인 : ps -ef | grep mysql
    2. 포트번호 확인 : netstat -anlp | grep mysql
    3. 프로세스 실행상태 확인 : systemctl status mysqld
    • 위 처럼 mysqld 프로세스가 정상 작동중이고, 포트 번호는 3306 인 것을 확인할 수 있다.

  • 다음으로 mysql 서버로 접속 하기 전에 초기 보안 설정을 진행해 준다.
    명령어 : mysql_secure_installation

  • ❗초기 보안 설정에는 총 5가지가 있다.❗
    1. VALIDATE PASSWORD COMPONENT 설치 여부 : Yes ( 연습할때는 No)
      사용자 비밀번호의 복잡성을 강화하고 보안을 향상시키기 위해 사용

    2. Remove anonymous users ? (익명 사용자 삭제 여부) : y
      익명 사용자 계정은 비밀번호 없이 mysql 서버에 접속할 수 있는 계정을 의미하므로 삭제하는 것이 보안에 효과적이다.

    3. Disallow root login remotely ? ( root 계정으로의 원격 로그인 금지 여부) : y
      root 사용자는 mysql 서버에 모든 권한을 가지고 있으므로, 원격 로그인을 비활성화하는 것이 안전하다.

    4. Remove test database and access to it ? ( 테스트 DB를 삭제하고 해당 DB에 대한 액세스 권한 제거 여부) : y
      일반적으로 mysql 서버는 'test' 라는 DB를 가지고 있는데 악의적인 사용자가 악용하는 것을 방지하기 위해 제거하는 것이 좋다.

    5. Reload privilege tables now ? ( 설정 변경 적용 여부 ) : y
      위에서 적용한 설정을 즉시 적용하기 위한 것이다.

  • 다음은 mysql 서버로 로그인한다. 명령어 : mysql -u root -p
    • -u : root 사용자로 로그인 하도록 지정
    • -p : password를 입력하라는 프롬프트가 나타남
  • 로그인이 완료되면 명령어 프롬프트가 mysql> 로 바뀐 것을 확인할 수 있다.

사용자 생성 및 DB 서버 생성하기

  • 사용자 생성하기 : CREATE USER 'user'@'%' IDENTIFIED BY 'qwer1234';
    • 이 사용자는 어떤 호스트에서든( '%' ) 이름 "user" 과 암호 "qwer1234" 를 사용하면 DB 서버에 액세스 할 수 있다는 내용
  • DB 생성하기 : CREATE DATABASE test;
  • 사용자에 대한 권한 부여 : GRANT ALL PRIVILEGES ON test.* TO 'user'@'%';
  • exit 명령어로 mysql 명령 프롬프트에서 빠져나온다.
  • DB 서버 접속을 위해 mysqld 프로세스가 사용하는 3306 포트에 대한 방화벽을 해제해준다.
    firewall-cmd –-zone=public –-permanent –-add-port=3306/tcp
    firewall-cmd –-reload

MySQL Workbench 연결하기

  • 위 까지 모든게 정상적으로 종료됬다면 이제 MySQL Workbench 클라이언트 프로그램을 실행시켜서 서버에 접속해준다.
  • MySQL Connections 에서 ➕ 표시를 눌러주면 설정 창이 뜬다.
    • Connection Name : 임의대로 적는다.
    • HostName : 리눅스 가상환경의 IP 주소를 입력한다.
    • Username : 새롭게 생성해준 사용자 이름을 입력한다.
    • 정상적으로 접속이 된다면 아래와 같은 화면을 볼 수 있다.

ERD 만들어보기

  • DB를 설계하는 과정은 다음과 같다.

    1. 요구 조건 분석
    2. 개념적 설계
    3. 논리적 설계
    4. 물리적 설계
    5. 구현
  • 요구 조건 분석에서 요구사항 명세서 작성이 끝나면 그것을 토대로 개념적 설계를 진행하는데 가장 먼저 E-R 다이어그램을 작성하는 것이다.

  • E-R 다이어그램 작성이 끝나면 작성한 것을 토대로 MySQL Workbench에서 구현한다.
    ( 본 글에서는 임의로 구현해보겠다. )

  • 새로운 테이블 형성 아이콘을 클릭한 뒤 화면에 마우스로 클릭하면 table1
    형성된 것을 볼 수 있다.

  • 다음으로 테이블에 속성을 입력해 보겠다.

  • 속성에는 속성명, 데이터 타입, 기본키 설정 등을 입력할 수 있다.

    • Datatype : 숫자형이면 INT , 문자형이면 VARCHAR(문자길이) 등 설정
    • PK : 기본키 / NN : Not Null / UQ : Unique / B : Binary / Un : Unsigned
      ZF : Zero Fill / AI : Auto Increment / G : Generated
  • 개체와 개체 간에는 1:1 / 1:N / N:M 관계를 형성하며 이또한 구현해준다. 창에서 해당하는 관계를 선택한 후 테이블을 선택해주면 자동으로 생성된다.
    ( 1:N 관계일 경우 N에 해당하는 테이블을 먼저 선택한 후 1에 해당하는 테이블을 선택)

  • 이처럼 ERD를 구현할 수 있으며, 아래는 내가 연습하기 위해 작성한 것이다.
    ( 연습을 위해 작성한 것으로 관계가 맞지 않을 수 있다. )


오늘의 느낀점 👀

  • DB 서버를 처음에 어떻게 설정하고 접속하는지에 대해 알아보는 시간이었다.

  • SQLD 자격증을 공부하면서 쿼리문들은 어디서 실제로 사용하는건지에 대한 궁금증이 있었는데 오늘 드디어!!! 알게 되었다😂

  • 수업 진도가 하루하루 빠르게 나가는 것을 보며, 복습을 철저히 해야겠다고 다시한번 다짐한다.
profile
Backend Developer

0개의 댓글