Linux DB

mysql 원격 접속 허용하기

2008.05.14 22:24

hostway 조회 수:42437

mysql 데이터베이스를 추가하면 기본적으로 로컬호스트에서만 접속이 가능 합니다.
mysql-client나 다른 리눅스 서버에서 원격으로 mysql 접속을 하려면 원격 호스트의 접속을 허용해 주어야 합니다. 설정 순서는 아래와 같습니다.
DB라는 db와, USER라는 db 계정이 생성되어 있는 상태에서 원격 접속 허용 설정을 하겠습니다.

1. mysql root 계정으로 mysql db에 접속한다.
[root@server21010910231 root]# /usr/local/mysql/bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 10 to server version: 5.0.18-log

Type 'help;' or 'h' for help. Type 'c' to clear the buffer.

mysql> use mysql;
Database changed
mysql>

2. user table과 db 테이블에 접속할 호스트의 주소, 계정, 패스워드, db 등을 설정 한다.
mysql> insert into user (host,user,password) values('xx.xx.xx.xxx','USER',password('pswd'));
Query OK, 1 row affected, 3 warnings (0.00 sec)

mysql> insert into db values('xx.xx.xx.xxx','USER','DB','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');
Query OK, 1 row affected (0.00 sec)

첫번째 user 테이블에 입력한 사항은 xx.xx.xx.xxx 의 아이피에서 USER 계정이 pswd의 패스워드로 접속 할수 있게 설정한 것이며, 두번째 db 테이블에 입력한 사항은 xx.xx.xx.xxx번의 아이피에서 USER 계정이 DB 데이터베이스에 접속하여 사용할 수 있는 권한 설정을 한 것입니다.

3. 추가한 사항을 적용시키고 빠져 나간다.
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> exit
Bye
[root@server21010910231 root]#

위와 같이 설정이 완료되면, xx.xx.xx.xxx 번의 아이피를 사용하는 서버에서 원격으로 mysql에 접속할 수 있게 됩니다.
단, USER 라는 db계정이 DB 라는 데이터베이스에만.. ^^

4. 호스트 주소에 아래과 같이 특정 아이피 대신 % 를 입력하면 어느곳에서나 원격으로 mysql 접속이 가능하게 됩니다.
아래와 같이 사용할 경우, 사용이 편리 하긴 하겠지만, 보안상 취약 하기 때문에 권장 하지는 않습니다. ^^

mysql> insert into user (host,user,password) values('%','USER',password('pswd'));
Query OK, 1 row affected, 3 warnings (0.00 sec)

mysql> insert into db values('%','USER','DB','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y','y');
Query OK, 1 row affected (0.00 sec)


=================================================================================


  • MySQL을 설치하면 기본적으로 로컬(localhost)에서만 접속이 가능하고 외부에서는 접속이 불가능하게 되어 있다.
외부에서 접속해보면 다음과 같은 오류 메시지가 나온다.[1]
Host '135.79.246.80' is not allowed to connect to this MySQL server
  • Toad for MySQL과 같은 DB 관리 도구를 사용하여 DB에 원격으로 접속하려면 허용해주는 로컬 작업이 필요하다.
  • 여기서는 root를 원격에서 접속할 수 있도록 설정한다. 이것을 응용하면 다른 계정에도 적용할 수 있다.

확인

  • 아래 쿼리를 날려보면 localhost가 나온다.
  • 즉 root 계정으로는 로컬에서만 접속가능하다.
  • (같은 방법으로 root 대신 다른 사용자명도 조회할 수 있다.)
SELECT Host FROM mysql.user WHERE user='root';

변경

모든 IP 허용[2]
INSERT INTO mysql.user (host,user,password) VALUES ('%','root',password('패스워드'));
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
IP 대역 허용
  • 다음과 같이 설정하면 111.222로 시작하는 모든 IP가 허용된다.
INSERT INTO mysql.user (host,user,password) VALUES ('111.222.%','root',password('패스워드'));
GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.%';
FLUSH PRIVILEGES;
특정 IP 1개 허용
INSERT INTO mysql.user (host,user,password) VALUES ('111.222.33.44','root',password('패스워드'));
GRANT ALL PRIVILEGES ON *.* TO 'root'@'111.222.33.44';
FLUSH PRIVILEGES;

원복

  • 모든 IP를 허용한 경우 다음과 같이 원래 상태로 복구할 수 있다.
DELETE FROM mysql.user WHERE Host='%' AND User='root';
FLUSH PRIVILEGES;


번호 제목 글쓴이 날짜 조회 수
65 지정된 시간 이상 질의를 계속 하는 질의문 잡아내기 호스트웨이 2015.09.15 6042
64 MySQL Processlist 콘솔 상에서 확인 호스트웨이 2015.09.07 6060
63 [mysql] shell 자동화 호스트웨이 2015.09.20 6329
62 [mysql] sqli, pdo 설정 확인 호스트웨이 2015.09.22 6597
61 mysql 4.0 에서 4.1 다운그레이드 호스트웨이 2012.11.01 6616
60 phpmyadmin에서 'mcrypt 확장모듈을 불러올 수 없습니다' 에러 시 file 호스트웨이 2012.11.29 6659
59 Mysql에서 log-slow-queries 로그 남기기 호스트웨이 2012.09.21 6813
58 MySQL DB 옵티마이저 사용법 호스트웨이 2015.09.18 6858
57 [MySQL] 무한정 늘어나는 log-bin 파일 줄이기 호스트웨이 2012.11.23 7057
56 MySQL에서 Query Cache 사용하기 호스트웨이 2012.12.20 7088
55 [mysql] 작은 용량의 파일 로드 속도가 느려진 경우 호스트웨이 2015.09.22 7104
54 [MySQL] 쿼리 한 번으로 데이터베이스 용량 알아내기 file 호스트웨이 2012.11.16 7154
53 mysql-5.5.x 에서 character-set 변경 호스트웨이 2012.12.07 7200
52 [Oracle] 대량 자료 조회 Parallel 호스트웨이 2015.09.26 7244
51 MYSQL 동시접속자수 늘리기 호스트웨이 2015.09.18 7319
50 Client does not support authentication protocol requested by server 메시지 발생 시 호스트웨이 2012.10.18 7604
49 [mysql] table 백업 호스트웨이 2015.09.21 7801
48 MySQL 보안을 위한 전용관리계정으로 MySQL 관리하기 호스트웨이 2015.09.08 8956
47 mysql replication을 이용한 DB 백업 동기화 에러 발생시 (slave db 1062 error) 호스트웨이 2015.09.09 8981
46 chive – phpMyAdmin 보다 좋은 ! 호스트웨이 2012.05.18 10621