INSERT나 UPDATE, DELETE문을 이용해서 MySQL의 사용자를 추가,삭제하거나, 사용자 권한 등을 변경하였을 때, MySQL에 변경사항을 적용하기 위해서 사용하는 명령어가 flush privileges 입니다.

아래는 highbird 데이터베이스에 bird 유저를 추가하는 예제입니다. 끝에 flush privileges 명령어를 사용해서 변경사항을 적용해 주는 것을 확인하실 수 있습니다.

MySQL flush privileges 명령어-LMLPHP

이 flush privileges 는 정확히 말하면 grant 테이블을 reload 함으로 변경사항을 바로 적용해주는 명령어인데, INSERT, UPDATE와 같은 SQL문이 아닌 grant 명령어를 사용해서 사용자를 추가하거나 권한등을 변경하였다면 굳이 실행할 필요가 없습니다.

아래는 grant 명령어를 사용해서 highbird 데이터베이스에 bird 유저를 추가하는 예제입니다.
flush privileges 명령어가 끝에 사용되지 않음을 확인 하실 수 있습니다.

MySQL flush privileges 명령어-LMLPHP

flush privileges 명령어처럼 grant 테이블을 reload 하는 명령어로 mysqladmin reload 나 
mysqlamdin flush-privileges 명령어가 있는데 차이라면 "mysqladmin 명령어"이므로 쉘 프롬프트에서 사용하여야 한다는 것과 비밀번호가 있을 경우 마지막 예와 같이 조금 번거로울 수 있다는 것입니다.

[mysql 프롬프트 사용 예]

mysql> flush privileges;


[쉘 프롬프트 사용 예]

[root@mail ~]# mysqladmin reload
[root@mail ~]# mysqladmin flush-privileges


[쉘 프롬프트 비밀번호가 있을 경우 사용 예]

[root@mail ~]# mysqladmin -u root -p reload
Enter password:
05-06 05:55