백엔드를 본격적으로 시작하기에 앞서 DataBase 를 배우게 되었다.
그래서 설치하는 MySQL과 DBeaver..! 두구두구두구🥁
먼저 https://dev.mysql.com/downloads/mysql/ 에서 버전과 맥북 사양에 맞는 설치파일을 다운받는다. 나같은 경우 버전은 8.0.34, 인텔맥이므로 아래 빨간색 박스로 표시한 파일을 다운받았다.
설치 파일을 더블 클릭해서 설치를 진행한다. 별로 어려운 것은 없고, 계속 버튼을 누르면 알아서 진행된다. 설치 마지막 즈음에 비밀번호를 설정하는 창이 뜨는데, 비밀 번호를 좀 더 보안성(?) 있게 설정하려면 Use Strong Password Encryption
이라는 첫번째 항목을 선택하고 그게 아니라면 두번째 항목을 선택한다.
그리고 비밀번호를 설정하면 된다. 여기서 root user는 관리자 계정이라고 생각하면 된다. 설정한 비밀번호는 절대 잊으면 안된다 절대절대!!
설치가 다 되면 터미널을 실행한다. 만약 터미널 이름이 zsh 라면 open ~/.zshrc 를 입력하고, bash 라면 open ~/.bash_profile 을 입력하고 엔터를 누른다.
그럼 아래와 같이 에디터가 뜨는데, 빨간색 박스로 표시한 부분의 경로가 다음과 같이 설정되어 있는지 확인한다. export PATH="$PATH:/usr/local/mysql/bin/"
이 경로는 MySQL 설치 경로인데, 만약 설치 경로가 위 경로와 다르다면 그 다른 설치 경로를 입력해주어야 한다.
터미널을 끄고 다시 실행한 뒤, mysql -u root -p
를 입력하면 비밀번호를 입력하라는 메세지가 나온다. 그럼 MySQL 설치 맨 마지막 단계에서 설정했던 비밀번호를 입력해주면 된다. 그럼 터미널에 아래와 같은 메세지가 뜬다.
mysql -u root -p
는 MySQL server를 띄우는 명령어로 MySQL을 사용하기 전에 터미널 창에 실행해둬야 MySQL을 사용할 수 있다.
서버를 종료하려면 exit
명령어를 입력한다.
※ 참고사항
DBeaver에 한 번 접속하고 나면 터미널에 서버를 띄우지 않아도 연결이 계속 유지되는 모양이다.
root는 관리자 계정이다. 따라서 연습용으로 사용할 계정을 따로 만들어주는 것이 좋다. oracle이나 MySQL Workbench 외 기타 DB 개발도구에서 계정을 생성할 수도 있고, 아래 설명처럼 터미널에서 따로 생성할 수도 있다.
먼저 터미널에서 root 계정 mysql -u root -p
으로 mysql을 접속한다.
접속 후 select user, host from mysql.user;
를 입력하면 계정 목록을 확인할 수 있다.
아래와 같이 계정을 생성하는 명령어를 입력한다.
create user 'USERID'@'% or localhost' identified by 'PASSWORD';
USERID에는 만들고자 하는 계정의 이름을, PASSWORD에는 비밀번호를 입력한다. 'USERID'@ 바로 뒤에 오는 '% or localhost' 에서는 계정 사용 용도에 맞게 % 또는 localhost 중 하나만 입력하라는 의미이다. 여기서 %는 외부 접속을, localhost는 내부 접속을 의미한다. (네트워크 쪽은 잘 모르겠다 ㅜㅜ 얼렁 공부해서 내용 업데이트 해놔야징...)
터미널에 select user, host from mysql.user;
를 입력해서 계정 목록을 조회해서 계정이 잘 생성되었는지 확인한다. 나는 tiger 라는 이름의 계정을 생성했다.
이제 tiger 라는 연습용 계정을 사용할 것이므로 MySQL Server 띄울 때, mysql -u tiger -p
를 입력하면 된다!
먼저 터미널 창에 관리자 계정으로 서버를 띄운 후에(mysql -u root -p
) 아래 적혀있는 명령어 중 목적에 맞는 것을 터미널 창에 입력하면 된다. 나는 관리자 계정처럼 사용할 거라 1번 처럼 모든 DB에 모든 권한을 다 줬다.
모든 DB에 모든 권한을 부여하기
grant all privileges on *.* to '계정아이디'@'호스트';
나는 계정 이름을 tiger, 호스트를 % 로 설정했으므로
grant all privileges on *.* to 'tiger'@'%';
를 입력한다.
특정 DB에 모든 권한을 부여하기
grant all privileges on 데이터베이스명.* to '계정아이디'@'호스트';
grant all privileges on 데이터베이스명.* to 'tiger'@'%';
특정 DB에 특정 권한 부여
grant select, insert, update on 데이터베이스명.* to '계정아이디'@'호스트';
grant select, insert, update on 데이터베이스명.* to 'tiger'@'%';
부여한 권한 적용 및 확인하기
flush privileges;
show grants for '계정아이디'@'호스트';
계정은 drop, delete 두 가지 명령어로 삭제할 수 있다.
drop
drop user '계정아이디'@'호스트';
drop user 'tiger'@'%';
delete
delete from user where user = '계정아이디';
delete from user where user = 'tiger';
DBeaver는 오라클, MySQL, Maria DB 그 외 많은 DBMS를 지원하는 DB 개발도구이다. 여러 DBMS 기반의 DB를 한곳에서 볼 수 있고, 사용이 간편하다는 장점이 있다. 그리고 Beaver 아이콘이 귀엽다...
왼쪽 상단에 새 데이터베이스 연결 아이콘을 누른다.
아래와 같은 창이 뜨면 MySQL을 선택한 뒤 다음 버튼을 누른다.
Username에 새로 만든 계정 이름을 입력하고, 계정 비밀번호를 입력한다.
왼쪽 파일트리처럼 뜨면 성공!
설치 끝-!