1개의 서버에 하나의 서비스만 동작할 때는 사용자라는 개념이 없을 수 있습니다. MySQL 서버에는 다수의 서비스를 운영할 수도 있는데 보안상 하나의 계정 정보를 공동 으로 이용하는 것은 권장하지 않습니다.

MySQL은 root 사용자 계정 외에 별도의 사용자 계정을 추가할 수 있습니다. 호스팅처럼 여러 사용자에게 MySQL 서버의 서비스를 오픈해야 하는 경우라면 사용자를 추가하는 기능은 매우 중요합니다.

29.1.1 CREATE USER

create user 명령은 쉽게 사용자를 추가할 수 있습니다. 아이디와 @ 그리고 접속 서버를 설정하면 됩니다.

| 콘솔 실습 화면 |

mysql> create user hojin@localhost identified by '!@abcd';
Query OK, 0 rows affected (0.01 sec)

localhost는 MySQL 서버를 자체 서버 내에서만 접속할 수 있습니다. 만일 외부 서버에 서 접속을 허용하고 싶다면 localhost 대신에 %를 사용합니다. %는 임의의 모든 IP를 의 미합니다.

| 콘솔 실습 화면 |

mysql> create user jiny@'%' identified by '!@abcd';
Query OK, 0 rows affected (0.01 sec)

29.1.2 직접 등록

insert, update 명령을 이용하여 사용자를 추가할 수도 있습니다. insert 방식으로 사용 자를 추가할 때는 별도의 DB 갱신이 필요합니다.

| 콘솔 실습 화면 |

mysql> insert into user (Host, User,Password) values('localhost','info',password('!@abcd'));
Query OK, 1 row affected, 3 warnings (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> select Host, User from user;
+-----------+-------+
| Host      | User  |
+-----------+-------+
| %         | jiny  |
| 127.0.0.1 | root  |
| ::1       | root  |
| localhost | hojin |
| localhost | info  |
| localhost | root  |
+-----------+-------+
6 rows in set (0.00 sec)

29.1.3 변경 사항 적용

FLUSH 명령은 MySQL의 내부 캐시를 지우고 새로운 캐시를 로드하는 명령어입니다. flush 명령을 사용하기 위해서는 MySQL 계정 사용자는 reload 권한이 있어야 합니다.

  • PRIVILEGES 옵션은 사용자 권한 테이블을 다시 읽어들이는 작업을 합니다. 만일 INSERT 형태 로 MySQL 회원을 추가하거나 변경했을 경우에 이를 적용해야 합니다. 이때 적용 부분을 갱신하는 명령은 plush privileges 입니다.

| 콘솔 실습 화면 |

mysql> plush prilvileges; 

flush privileges 명령은 grant 테이블을 재로드함으로써 변경 사항을 바로 적용 가능하도록 하는 기능입니다. 하지만 insert, update문을 사용하지 않고 grant 명 령을 통하여 작업을 한 경우에는 이명령으로 갱신을 하지 않아도 됩니다. 또는 셸 명령에서 형태로 갱신할 수 있습니다.

  • LOGS 현재의 로그 파일을 지우고 새롭게 생성합니다. 로그 파일명을 지정하지 않으면 기존 이름에 +1을 증가된 파일명이 생성됩니다.

| 콘솔 실습 화면 |

mysql> flush logs;
Query OK, 0 rows affected (0.00 sec)

  • TABLES 열려 있는 모든 테이블을 닫습니다. MySQL에서 테이블을 오픈하여 사용하는 것 은 캐시 크기와 상관이 있습니다. 많은 접속 스레드의 생성과 테이블을 오픈할 때 캐시의 용량 부족으로 정상적인 처리가 되지 않을 수 있습니다.

| 콘솔 실습 화면 |

mysql> flush tables;
Query OK, 0 rows affected (0.05 sec)

  • STATUS 모든 상태 변수를 0으로 초기화합니다.

| 콘솔 실습 화면 |

mysql> flush tables;
Query OK, 0 rows affected (0.05 sec)

● HOSTS HOST 테이블을 다시 읽어들입니다. 만일 접속 호스트의 IP 주소가 변경될 경우 사용하면 좋은 옵션입니다.

| 콘솔 실습 화면 |

mysql> flush hosts;
Query OK, 0 rows affected (0.00 sec)