- 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}'@'localhost' identified 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}'@'localhost' identified 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'; |
'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 |