BE_[Database] MySQL and SQL_설치,설정,접속_10.31

송철진·2022년 10월 30일
0

0. 학습목표

  • Node.js 만으로는 완벽한 API 시스템을 만들 수 없고, 데이터베이스 시스템의 필요성을 설명할 수 있습니다.
  • ERD(Entity Relational Diagram)를 통해서 Instagram system에 필요한 스키마를 논리적으로 설계할 수 있습니다.
  • 설계한 스키마를 기반으로 MySQL DDL(Data Definition Language)을 사용해서 데이터베이스에 2차원 테이블을 물리적으로 생성할 수 있습니다.
  • MySQL DML (Data Manipulation Language)을 사용해서 Instagram Schema 내의 2차원 테이블(users, posts,..)에 데이터를 추가할 수 있습니다.
  • 마지막으로 DQL (Data Query Language)을 사용해서 데이터베이스에 저장된 정보를 원하는 형태로 출력해서 데이터를 확인할 수 있습니다.

1. MySQL 선택 이유

  • 안정성 / 성능과 기능
  • 커뮤니티와 인지도
  • MySQL 커뮤니티 에디션은 일반 사용자가 무료로 사용

2. 설치 및 설정하기

2-1. 설치 및 실행

최신 버전 설치: brew install mysql
버전 확인(설치 완료 확인): mysql --version
mysql 서버 시작: mysql.server start
재부팅 여부와 상관없이 서버 실행: brew services start mysql(시작) / brew services stop mysql(종료)

2-2. mysql서버 초기 설정

  1. mysql 시작: mysql.server start
    mysql_secure_installation

  2. 비밀번호 복잡도 검사 과정 설정( 안하겠다! )

  3. 비밀번호 입력 & 확인 단계 → root 비밀번호 입력

  4. 익명 사용자 삭제 → yes

  5. 원격 접속 허용하지 않을 것인가? → yes

  6. test DB 삭제 여부 → no

  7. previlege 테이블을 다시 로드 할 것인가? → yes

  8. 설정 종료!

3. 서버 접속하기

MySQL 서버 프로그램(mysqld)과 함께 설치된 MySQL 기본 클라이언트 프로그램mysql을 실행합니다

mysql(클라이언트)로 mysqld(서버)에 접속하기:

3-1. MySQL socket 파일을 이용

방법1. 소켓 파일(/tmp/mysql.sock)을 이용해서 접속
👉 유닉스의 프로세스 간 통신(IPC, Inter Process Communication)으로 접속.

mysql -u root -p --host=localhost --socket=/tmp/mysql.sock
  • -u root 옵션: root 사용자로 서버 프로그램에 접속한다
  • --host=localhost 옵션: mysql(클라이언트)은 항상 소켓 파일(/tmp/mysql.sock)을 통해서 MySQL 서버에 접속하겠다
  • ‘Unix domain socket’을 이용하는 방식.

방법2. 호스트 주소와 포트를 명시하지 않고 MySQL socket 파일을 이용해 접속

mysql -u root -p
  • 기본(default) 호스트: localhost
  • MySQL 서버의 설정 파일(my.cnf)에서 소켓 파일의 위치를 읽어서 접속

mysql.sokcet이란?
👉 ”Unix Domain Socket”으로 유닉스의 프로세스 간 통신이 가능한 소켓.

  • 서로 다른 mysql(클라이언트)과 mysqld(서버) 프로세스 사이에서 통신할 때 사용.
  • mysql은 TCP/IP 소켓과 Unix Domain Socket 둘 다 사용 가능.

3-2. TCP/IP를 통해 호스트에 접속

TCP/IP를 통해서 127.0.0.1(로컬 호스트)로 접속

mysql -u root -p --host=127.0.0.1 --port=3306
  • --port=3306 옵션: 포트를 명시(일반적)

비교 정리

Unix Domain SocketTCP/IP Socket
통신 방식MySQL 소켓 파일(/tmp/mysql.sock) 이용IP와 PORT 이용
프로세스 간 통신?가능불가
사용 조건mysql과 mysqld가 같은 OS에서 실행 시
통신 속도상대적 빠르다상대적 느리다
원격 호스트 mysql서버 접속불가가능
호스트 명시--host=localhost--host=127.0.0.1
profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글