데이터배이스를 생성하기 전에 MYSQL 서버를 켜줘야 합니다. 우선 윈도우 검색창에 서비스를 검색한 후 저는 MYSQL80 서버를 서비스를 실행시켜 다음과 같은 화면이 나오도록 합니다.
MYSQL 설치와 DBeaver 설치 방법은 다른 글을 참고해 주세요!
서버를 켰다면 DBeaver를 켜줍니다. 데이터베이스 생성 방법은 아래 사진과 같이 Databases을 오른쪽 마우스를 누른 후 Create New Database를 누러줍니다. 데이터베이스 이름을 적어주시고 확인 버튼을 눌러 데이터베이스를 생성합니다.
다음은 사용자를 생성합니다. 직접 사용해보니 내가 데이터베이스를 만들었다고 아무렇게나 사용할 수 있는게 아니었습니다. 각각의 DB마다 관리해주는 사용자계정을 만들 수 있고 권한을 설정할 수 있습니다. 위의 그림에서 Users를 열어본다면 mysql를 설치하면서 생성한 사용자 계정을 볼 수 있습니다. 그 계정은 기본적인 계정으로 모든 권한을 가지고 있습니다. 사용자가 어떤 권한을 가지고 있는지는 계정을 생성한 후에 알아보도록 하겠습니다.
그림과 같이 오른쪽 키를 통해 사용자를 생성할 수도 있고 sql문을 사용할 수도 있습니다. sql문은 아래에 따로 붙여두도록 하겠습니다. 이어서 생성한 사용자에게 루트 계정을 이용해 권한을 부여해야 합니다. 저는 개발의 편의상 모든 권한을 부여했었지만 이번 기회에 알아가 보는 것도 좋을거 같습니다. 우선 아래와 같이 DBeaver를 통하면 간단하게 클릭으로 권한을 설정할 수 있습니다.
아래 sql문을 통해서 사용자를 생성하고 권한을 부여할 수 있습니다.
show databases; //모든 데이터베이스 보여주기
create database databaseName; //데이터베이스 생성하기
create user 'username'@'localhost' identified by 'password'; //사용자 생성하기
select `user` from `mysql`.`user`; //모든 사용자 보여주기
show grants for 'username'@'localhost'; //사용자의 권한 보여주기
grant all on `databaseName`.* to 'username'@'localhost' with grant option; //모든 권한 부여하기(다른 사용자에게 권한을 줄 수 있는 권한을 포함)
/** board 데이터베이스에서 jihoon계정에게 모든 권한과 다른 사용자에게 권한을 줄 수 있는 권한(with grant option)을 줌
flush privileges; →권한에 대한 내용을 다시 읽어오게 하는 것으로 권한이 잘 작동하지 않을 때 사용 */
더 자세한 sql 문법을 알고 싶다면 이글를 참고하면 좋을 거 같습니다.
권한 | 설명 |
---|---|
ALL | 모든 권한 부여 |
ALTER | Table 내용 변경 가능 |
ALTER ROUTINE | Function, Procedure, Trigger 내용 변경 또는 삭제 가능 |
CREATE | Database, Table 생성 가능 |
CREATE ROUTINE | Function, Procedure, Trigger 생성 가능 |
CREATE TABLESPACE | TableSpace, Log file groups 생성 가능 |
CREATE TEMPORARY TABLES | Temporary Table 생성 가능 |
CREATE USER | User 생성, 삭제, 변경 가능 |
CREATE VIEW | View 생성 및 변경 가능 |
DELETE | Delete 명령어 사용 가능 |
DROP | Database, Table, View 삭제 가능 |
EVENT | Event 사용 가능 |
FILE | SELECT.. INTO OUTFILE LOAD DATA INFILE 명령어 사용 가능 |
INDEX | Index 생성 및 삭제 가능 |
INSERT | Insert 명령어 사용 가능 |
LOCK TABLES | select 권한이 있을 경우 LOCK TABLES 사용 가능 |
PROCESS | Show Process 명령어 사용 가능 |
RELOAD | FLUSH 명령어 사용 가능 |
SELECT | Select 명령어 사용 가능 |
SHOW DATABASES | 전체 Databases 목록을 보여줌 (해당 권한이 없는 경우에는 자신의 Databases만 출력) |
SHUTDOWN | Shutdown(mysql 서비스 종료) 명령어 사용 가능 |
UPDATE | Update 명령어 사용 가능 |
https://wayhome25.github.io/mysql/2017/03/23/mysql-11-user-setting/
https://proni.tistory.com/146
아직 많이 부족합니다! 부족한 점이 있으면 말씀해 주세요~
유익한 자료 감사합니다.