MySQL을 처음 설치하고나면, 그다지 되는게 별로 없죠?
가장 먼저 해줘야 하는 것이...
- 새로운 database 생성
- 새로운 user 생성 (일단은 admin 이겠죠!, root 말고)
- 생성한 admin user에게 database에 대한 전권(!) 주기
처음 mysql-server를 설치하고 나서 아래와 같이 mysql에 접속을 합니다. (-u 옵션하고 root는 붙여쓰는거 아시죠?)
$ mysql -uroot -p
내가 사용할 새로운 database를 생성합니다.
mysql> create database COKER character set utf8; Query OK, 1 row affected (0.00 sec)
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | COKER | | mysql | +--------------------+ 3 rows in set (0.00 sec)
다음으로 COKER database의 관리자를 생성합니다. 사용자 정보는 mysql database의 user table에 있습니다.
한글을 쓰기위해 database 생성시 문자셋을 utf8로 지정해서 생성하면 편합니다. (나중에 바꾸면 전환작업을 해야해요).
mysql> create user cokeradmin; Query OK, 0 rows affected (0.00 sec) mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select host, user from user; +--------------+------------------+ | host | user | +--------------+------------------+ | % | cokeradmin | | 127.0.0.1 | root | | ANGEL-P-5310 | root | | localhost | debian-sys-maint | | localhost | root | +--------------+------------------+ 5 rows in set (0.00 sec)
이제 cokeradmin에 비밀번호를 지정하고, COKER database에 대한 모든 권한을 부여합니다.
위에서 host 칼럼은 어떤 host로부터의 접속 인지를 알려주는 것으로 위에서 root 사용자는 localhost에서 접속하는 것만 가능합니다. '%'는 모든 host를 의미하므로 cokeradmin유저는 원격에서 접속할 수 있겠네요.
mysql> set password for 'cokeradmin' = password('********'); Query OK, 0 rows affected (0.00 sec) mysql> grant ALL on COKER to 'cokeradmin';
여기까지 해줘야,
외부 툴을 이용하거나 eclipse의 DTP 툴을 이용해서 접속을 할 수가 있습니다.
사용자를 추가하고 비밀번호를 부여하는 기본적인 방법은
mysql> create user 'cokeradmin'@'%' identified by '********';
이렇게 하면 password() 사용하지 않아도 적용됩니다.
참고로, 'user'@'%' 와 'user'@'localhost' 는 같은 'user'라고 하더라도 서로 다르게 인식됩니다. 시스템 내부/외부 모두에서 접근하기 위해서는 2개를 생성해줘야 합니다.
현재 로그인한 ID를 확인하려면 아래와 같이 합니다.
mysql> SELECT USER(),CURRENT_USER();
+----------------+----------------+
| USER() | CURRENT_USER() |
+----------------+----------------+
| root@localhost | root@localhost |
+----------------+----------------+
1 row in set (0.00 sec)
mysql>
뭐 간단한 거니까 위에서 굵은색 표시한 것은 좀 외워두면 좋겠죠.
참고)권한부여 예제 몇 가지
grant SELECT, INSERT, DELETE on COKER.* to cokeruser@'localhost' identified by 'asdf1234';
grant ALL on COKER to cokeruser@'%' identified by 'asdf1234';
grant ALL PRIVILEGES on COKER.ADDRESS to cokeruser@'%' identified by 'asdf1234';
flush privileges;
아래 각 표현식은 같은겁니다.
ALL, ALL PREVILEGES
COKER, COKER.*
cokeradmin, cokeradmin@'%'
추가
특정 사용자의 grant 목록을 보려면
mysql> show grants for 'root';
mysql> show grants for 'root'@'localhost';
mysql> show grants for 'root'@'123.456.78.9';
추가
CREATE USER 'new_root'@'%' IDENTIFIED BY '***';
GRANT ALL PRIVILEGES ON *.* TO 'new_root'@'%' IDENTIFIED BY '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;
더 자세한 내용은 ... http://dev.mysql.com/doc/refman/5.5/en//adding-users.html
'오픈소스(Open Source)' 카테고리의 다른 글
mysql 운영 (0) | 2015.01.14 |
---|---|
oracle information (0) | 2015.01.14 |
postgres db admin (0) | 2015.01.14 |