MySQL이나 MariaDB를 사용하다보면 FLUSH PRIVILEGES라는 명령어를 자주 사용하게 된다. 대체 무슨 의미일까.
보통은 INSERT, DELETE, UPDATE를 통해 사용자를 추가, 삭제, 권한 변경 등을 수행하였을 때 이 변경 사항을 반영하기 위하여 사용한다. 이 떄 FLUSH PRIVILEGES는 grant 테이블을 reload함으로서 변경 사항을 즉시 반영하도록 한다.
UPDATE USER SET PASSWORD=password('새로운패스워드') WHERE USER='사용자명';
FLUSH PRIVILEGES;
DELETE FROM USER WHERE USER='사용자명';
FLUSH PRIVILEGES;
그런데 만약 INSERT, DELETE, UPDATE와 같은 SQL문을 사용하지 않고 바로 grant 명령어를 사용하여 작업하였다면 FLUSH PRIVILEGES를 실행할 필요가 없어진다.
또한 MySQL/MariaDB 상이 아닌 OS 커맨드 상에서도 flush를 할 수 있다.
$ mysqladmin reload
$ mysqladmin flush-privileges
패스워드가 설정된 경우는 인증을 해야 한다.
$ mysqladmin -u root -p reload
Enter password:
그런데 이 FLUSH PRIVILEGES는 굉장히 성능에 영향을 준다. 특히 습관적으로 FLUSH PRIVILEGES를 사용하는 경우가 있는데(모든 명령 이후에 사용하는 경우도 있다) 이는 엄청난 부하가 된다.
'프로그램 > MySql' 카테고리의 다른 글
MYSQL 사용자 생성 (0) | 2016.11.29 |
---|---|
PASSWORD()와 OLD_PASSWORD() 함수 그리고 old_passwords 설정 (0) | 2016.11.28 |
MySQL 내장 함수 (MySQL전용 함수) (0) | 2016.11.28 |
MySQL 기본 명령어 정리 (0) | 2016.11.28 |
join문 (0) | 2015.10.14 |