01.Mysql 기초 - 데이터 제어 언어(DCL, Data Contorl Language)
![post-thumbnail](https://velog.velcdn.com/images/jewon119/post/ba24cd9b-5ca1-4a27-af1d-80b095c0294f/mysql-thumbnail.png)
🌈 터미널에서 데이터베이스 관리하기
🔥 mysql 접속
🔥 mysql 사용자 확인, 추가, 비밀번호 변경, 삭제
🔥 mysql 접속 허용 설정
1. mysql 접속
- 터미널에서 mysql을 다루기 위해서는 터미널에서 mysql로 접속할 수 있어야함
1) 터미널을 켜고 mysql BASE Directory로 이동
- BASE Directory 경로는 [시스템 환경설정] ⇢ [MySQL] ⇢ [Configuration]에서 확인할 수 있음
- 설치 시 특별한 경로 설정을 해주지 않았다면, /usr/local/mysql 임
- Directory 이동 방법 : 터미널 실행 ⇢ "cd /usr/local/mysql" 입력
2) mysql BASE Directory에서 바이너리 폴더로 이동 : cd bin
3) mysql 실행 및 로그인 : ./mysql -u root -p
- 비밀번호 입력하라는 표시 ⇢ mysql 비밀번호 입력
![](https://velog.velcdn.com/images%2Fjewon119%2Fpost%2F1317c2ba-d17b-449e-81da-9198e3c08c55%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202021-02-10%20%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB%2011.11.56.png)
2. mysql 사용자 확인, 추가, 비밀번호 변경, 삭제
- mysql에는 user을 관리하는 데이터베이스가 mysql이라는 이름으로 존재
- mysql 데이터베이스를 지정하여 사용자 관련한 작업들을 수행
1) 터미널에서 mysql 사용자 확인
- [mysql 실행 및 로그인] ⇢ [mysql DB 지정] ⇢ [user 조회]
- mysql> ./mysql -u root -p
- mysql > use mysql;
- mysql > select * from user;
2) 터미널에서 mysql 사용자 추가
- [mysql 실행 및 로그인] ⇢ [mysql DB 지정] ⇢ [user 생성]
- user을 생성하는 방법을 2가지 방법으로 나뉨
- 🔥 로컬에서만 접속 가능한 userid를 생성 : 'userid'@localhost
- mysql> ./mysql -u root -p
- mysql > use mysql;
- mysql > select * from user;
- mysql> create user 'userid'@localhost identified by '비밀번호';
- 🔥 모든 호스트에서 접속 가능한 userid를 생성 : 'userid'@'%'
- mysql> ./mysql -u root -p
- mysql > use mysql;
- mysql > select * from user;
- mysql> create user 'userid'@'%' identified by '비밀번호';
3) 터미널에서 mysql 사용자 비밀번호 변경
- [mysql 실행 및 로그인] ⇢ mysql DB 지정 ⇢ 비밀번호 변경
- mysql> ./mysql -u root -p
- mysql > use mysql;
- mysql> SET PASSWORD FOR 'userid'@'%' = '변경할 비밀번호';
4) 터미널에서 mysql 사용자 삭제
- [mysql 실행 및 로그인] ⇢ mysql DB 지정 ⇢ 사용자 삭제
- mysql> ./mysql -u root -p
- mysql> use mysql;
- mysql> drop user 'userid'@'%';
3. mysql 접속 허용 설정
1) 현재 부여된 권한 조회
- [mysql 실행 및 로그인] ⇢ 권한 조회(해당 ID)
- mysql> ./mysql -u root -p
- mysql> SHOW GRANTS for [해당 ID];
2) 접속 허용 설정 및 권한 부여
- [mysql 실행 및 로그인] ⇢ 로컬 접속 허용 설정
- mysql> GRANT [권한] ON [DATABASE명].[TABLE명] to '[id명]'@localhost;
- [권한] 옵션 : ALL은 모든 권한 / SELECT, UPDATE는 조회 수정 등 권한 제한 가능
- [DATABASE명].[TABLE명] 옵션 : 특정 데이트 베이스 또는 테이블만 한정하여 권한 제한 가능
- [DATABASE명].[TABLE명] 옵션으로
*.*
을 주면 모든 데이터베이스 및 모든 테이블 권한 부여
- [id명]는 해당 권한 옵션을 줄 id명 입력
- 🔍 예시1 : jaewon에게 모든 데이터베이스 및 모든 테이블에 모든 권한 부여
- mysql> ./mysql -u root -p
- mysql> GRANT ALL ON
*.*
to 'jewon'@localhost;
- 🔍 예시2 : jaewon에게 모든 데이터베이스 및 모든 테이블에 조회, 수정 권한만 부여
- mysql> ./mysql -u root -p
- mysql> GRANT SELECT, UPDATE ON
*.*
to 'jewon'@localhost;