2014. 11. 19. 10:10

- MySQL 설정변경
 $ sudo vi /etc/mysql/my.cnf
# bind-address=127.0.0.1
 $ sudo /etc/init.d/mysql restart
mysql은 기본적으로 127.0.0.1 (localhost)에서만 접속을 허용하며 client의 default port는 3306이다.
보안을 위해서 포트를 변경하고 bind-address라인을 #을 넣어 원격접속을 허용하고 mysql을 재 시작 해줘야 한다.

- root로 로그인하기
 $ mysql -u root -p mysql
+--------+-----------+
| user   | host      |
+--------+-----------+
| root   | 127.0.0.1 |
| root   | ::1       |
|        | localhost |
| com    | localhost |
| hyb    | localhost |
| mobile | localhost |
| root   | localhost |
+--------+-----------+
8 rows in set (0.00 sec)

mysql> insert into user (host, user, password, ssl_cipher, x509_issuer, x509_subject) values ('%','root',password('password'),'','','');

- 사용자 확인

mysql> select user, host from user;



- 사용자 권한 설정

mysql> GRANT all privileges on {database-name}.* to '{user-id}' identified by 'password';

mysql> GRANT all privileges on {database-name}.* to '{user-id}'@'localhostidentified by 'password';

예) grant all privileges on openfire.* to 'openfire'@'openfire-server' identified by 'openfire-password';

모든 데이터베이스에 대해서 권한을 부여하려고 할 경우 *를 사용한다. 특정 IP('111.112.113.114')를 지정할 수 있으며 만약 모든 IP를 허용하고 싶다면 '%', '111.112'로 시작하는 아이피를 허용하고 싶다면 '111.112.%'로  대체하면 된다.  hostname을 명시하지 않으면 '%'과 동일하며 localhost에서도 동작하기 위해서는 꼭 'localhost'를 따로 명시해주어야 한다.

select와 insert만 허용하는 경우 다음과 같이 설정할 수 있다.

mysql> GRANT select, insert on {database-name}.* to '{user-id}'@'localhostidentified by 'password';


- 사용자 권한 삭제

mysql> revoke all privileges on *.* from '{user-id}'@'{hostname}'


이제 원격에서 접속해보자.
$ mysql -h 111.111.111.111 -u root -p

접속 허용을 삭제해보자.

mysql>  delete from mysql.user where host='192.168.70.102' and user='root';
Query OK, 1 row affected (0.00 sec)



'Tip > 우분투' 카테고리의 다른 글

Ununbu에 vsftpd 설치하기  (0) 2015.04.14
MySQL 기본적인 사용  (0) 2014.11.19
MySQL 접속  (0) 2014.11.19
Openfire (XMPP) 설치  (1) 2014.11.19
ant를 ubuntu에 설치해봅시다.  (0) 2014.11.18
Posted by 모바일헌터