[부스트코스 SQL] SQL 설치 및 데이터베이스 생성

June·2021년 1월 2일
1

부스트코스

목록 보기
1/23

edwith 부스트코스 백엔드 과정

SQL (Structured Query Language)

설치

MySQL 설치

MySQL 설치 안내

개요

  • SQL은 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정 같은 조작을 할 수 있도록 고안된 컴퓨터 언어

  • 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단

  • DML (Data Manipulation Language): 데이터를 조작하기 위해 사용한다. INSERT, UPDATE, DELETE, SELECT 등이 여기에 해당한다.

  • DDL (Data Definition Language): 데이터베이스의 스키마를 정의하거나 조작하기 위해 사용한다. CREATE, DROP, ALTER등이 여기에 해당한다.

  • DCL (Data Control Language): 데이터를 제어하는 언어이다. 권한을 관리하고, 데이터의 보안, 무결성등을 정의한다. GRANT, REVOKE 등이 여기에 해당한다.

Database 생성하기

  1. cmd창에서 데이터 베이스 관리 시스템 접속

    mysql -uroot -p

    MySQL 관리자 계정인 root로 데이터베이스 관리 시스템에 접속하겠다는 것이다.

  1. database 생성

    mysql> create database DB이름;

    create database connectdb;

Database 사용자 생성과 권한 주기

  • Database를 생성했다면, 해당 데이터베이스를 사용하는 계정을 생성해야 한다. 또한, 해당 계정이 데이터베이스를 이용할 수 있는 권한을 줘야 한다. 아래와 같은 명령을 이용해서 사용자 생성과 권한을 줄 수 있다. db이름 뒤의 *는 모든 권한을 의미한다. @'%'는 어떤 클라이언트에서든 접근가능하다는 의미이고, @'localhost'는 해당 컴퓨터에서만 접근가능하다는 의미이다.

  • flush priviliges는 DBMS에게 적용을 하라는 의미다. 반드시 실행해야 한다.

grant all privileges on db이름. to 계정이름@'%' identified by '암호';
grant all pribileges on db이름.
to 계정이름@'localhost' identified by '암호';
flush privileges;

예시
사용자 계정이름은 connectuser, 암호는 connect123!@#, 해당 사용자가 사용하는 데이터베이스는 connectdv로 계정을 생성하라면 다음과 같이 명령을 수행한다.

grant all privileges on connectdb.* to connectuser@'%' identified by 'connect123!@#';

grant all privileges on connectdb.* to connectuser@'localhost' identified by 'connect123!@#';

flush privileges;

하지만 이렇게 실행을 하니 아래와 같이 에러가 났다.

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by 'connect123!@#'' at line 1

MySQL8 부터는 grant로 user 생성이 불가능하다

오류 해결 방법

CREATE USER 'connectuser'@'%' IDENTIFIED BY 'connect123!@#';
GRANT ALL PRIVILEGES ON *.* TO 'connectuser'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON connectdb.* to 'connectuser'@'%' WITH GRANT OPTION;
flush privileges;

생성한 database에 접속하기

cmd창을 열고 실행한다.

mysql -h호스트명 -uDB계정명 -p데이터베이스이름

db 이름이 connectdb, db계정이 connectuser, 암호가 connect123!@# 일 경우

mysql -h127.0.0.1 -uconnectuser -p connectdb

연결 끊기

quit;

2개의 댓글

comment-user-thumbnail
2023년 3월 21일

MySQL8 부터는 grant로 user 생성이 불가능하다
덕분에 오류 해결했습니다 감사합니다!

1개의 답글