[Mysql] Ubuntu에서 자동 설치 후 원격 접속 방법 Develop Tip

MySql을 버전 4부터 사용한거 같은데 이제는 버전5가 되었다.

우분투에서
$ sudo apt-get install mysql-server
로 MySql DBMS를 설치하면 root DB 사용자의 암호를 넣는 부분이
있고 이것으로 모든 설치가 완료된다.

그런데 외부에서 root로 접근하려면 안된다.
이것을 풀면 외부의 보안상의 문제가 발생하기 때문이다.
개발을 할 때에는 외부에서 root 접속을 하여
사용자도 만들고 database instance도 만들고 해야 하는데
그래도 외부 접속이 필요할 경우가 있다.

다음과 같은 과정을 거친다.

1) my.cnf 에 bind-address 설정 부분.
$ sudo vi /etc/mysql/my.cnf
로 파일을 열어,
bind-address를 찾아, 그 앞에 #으로 코멘트 처리한다.
디폴트로 자기 자신에서만 접속하도록 허용한다는 의미이다.

그  다음 mysql 서버를 재기동시킨다.
$ sudo /etc/init.d/mysql restart

2) 외부 호스트에서 root 사용자가 접속하도록 허용.
mysql에 들어가서 mysql database를 살펴본 다음,
테이블을 보면 user가 존재한다.

mysql> use mysql;
mysql> show tables;
mysql> select host,user from user\G
mysql> select host,user from user\G
*************************** 1. row ***************************
host: 127.0.0.1
user: root
*************************** 2. row ***************************
host: jeos
user:
*************************** 3. row ***************************
host: jeos
user: root
*************************** 4. row ***************************
host: localhost
user:
*************************** 5. row ***************************
host: localhost
user: debian-sys-maint
*************************** 6. row ***************************
host: localhost
user: root
6 rows in set (0.01 sec)


여기에서 보면 모든호스트(%)에서 root로 들어와도 된다는 허용 레코드가 없다.
(보안을 위해서는 접속 host ip를 지정하는 것이 좋다)

다음과 같은 mysql 명령으로 위의 내용을 추가한다.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'myroot' WITH GRANT OPTION;

위에서 myroot는 예로 든 root 암호이다.

이와 유사한 방법으로 새로운 사용자를 아래와 같이 등록시킬 수 있다.
(거의 root와 동일한 permission을 갖는다. permission은 따로 조종)

mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'user'@'localhost' IDENTIFIED BY 'pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON mydb.* TO 'user'@'%' IDENTIFIED BY 'pass' WITH GRANT OPTION;

mydb 대신 해당 database를, user 대신 해당 사용자 이름을, pass 대신 해당 암호를 입력하면 된다.


mysql> GRANT ALL PRIVILEGES ON * TO 'root'@'localhost' IDENTIFIED BY 'r' WITH GRANT OPTION;


위에 차이를 좀 살펴보시기를...


예전 4부터 사용되던 방법인데 5에서도 계속 잘 통용되고 있다.


핑백

  • 지훈현서 : [CentOS 5.11] MariaDB 10 설치하기 2015-02-21 12:33:57 #

    ... sudo /etc/init.d/mysql start 명령으로 동작시킵니다.그러면 암호없는 root 계정이 디폴트로 만들어져 있습니다. root 암호 수정을 위하여 (다음내용 참고) $ mysql -urootMariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDEN ... more

덧글

댓글 입력 영역

구글애드텍스트