설정
언어 설정
- 기본적으로 latin1로 되어있는것을 utf8로 수정
- 한글이 깨질 수 있다.
/etc/mysql/my.cnf
파일 수정!include ~
라 이미 적혀있는것 하단에 붙여야 한다.- 아래의 내용으로 그대로 붙여넣으면된다([client]라고 적힌거포함)
[client]
default-character-set = utf8
[mysqld]
init_connect="SET NAMES utf8"
character-set-server = utf8
collation-server = utf8_general_ci
[mysqldump] default-character-set = utf8
[mysql] default-character-set = utf8
외부연결 설정
vi /etc/mysql/mysql.conf.d/mysqld.cnf
bind-address = 127.0.0.1
를bind-address = 0.0.0.0
으로 외부 연결 가능하게 설정
- 추가적으로 포트포워딩도 확인(3306번)
설정 적용
- mysql 재시작
service mysql restart
- 확인
- mysql 접속하여
status
입력 - character_set이 전부 utf8으로 되어있으면 적용완료
- mysql 접속하여
사용자
- 사용자를 추가하고 권한을 부여 가능
- 권한을 이용하여 특정 외부와 내부에서 접근을 분리하고, 내부적으로는 특정 데이터베이스 접근만 가능하게 하여 관리한다.
- mysql 접속후
use mysql
로 시작
사용자 추가
create user '[id]'@'[host]' identified by '[비번]';
- host는 어디서 접근하냐를 설정
localhost
는 내부에서만 접근%
는 외부에서도 접근 가능(어디서든 접근)
- host는 어디서 접근하냐를 설정
사용자 확인
select user,host from user;
- mysql 데이터베이스의 user테이블을 확인
사용자 삭제
drop user 'id'@'host';
사용자 권한 부여
- 만든 사용자는 특정 database만 접근가능하도록 설정 가능
grant [권한정도] privileges on [데이터베이스명].[테이블명] to '[id]'@'[host]';
- 권한정도
- all 모든 권한 사용
- SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER 과같은 특정 권한 지정가능
- 여러개 적용시 쉼표로 쭉 써주면 된다.
- 권한정도
사용자 권한 삭제
revoke [권한정도] on [데이터베이스명].[테이블명] from '[id]'@'[host]';
- 권한정도
- all은 모든 권한 삭제
- SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER과 같은 특정 권한 삭제 가능
- 권한정도
사용자 권한 확인
show grants for '[id]'@'[host]';
- 해당 아이디와 호스트를 가진 유저의 권한 확인
변경사항 적용
flush privileges;
참고
- https://docs.oracle.com/en/database/oracle/oracle-database/18/sqlrf/GRANT.html#GUID-20B4E2C0-A7F8-4BC8-A5E8-BE61BDC41AC3
- https://webdir.tistory.com/217
-
https://nesoy.github.io/articles/2017-05/mysql-UTF8
- https://nickjoit.tistory.com/144
- https://damduc.tistory.com/4