[MySQL] 원격접속사용하기 (2007/11/03 수정)
로빈아빠
본문
DB서버가 분리되어 운영될 때 원격의 호스트가 해당 디비서버에 접속하기 위한 설정방법이다.
+ 원격의 디비에 접속하기위한 Host1, Host2, Host3가 있고 DB서버인 Host4가 있다고 가정했을 때..
원격디비서버에서 User테이블에 원격접속을 허용할 호스트를 입력해주고 DB 테이블에서 사용자에게 지정된 모든 호스트를 지정해주거나 원하는 호스트를 지정해 주면 됩니다.
+ DB 서버설정하기.
sueni@bbung ...]# mysql -uroot -p mysql
password: *********
# manpage라는 하나의 사용자를 등록 후 해당사용자에 대한 정보로 원격에서 접속하도록 설정해
보겠다.
먼저 DB를 하나 만들도록 합니다.
mysql> create database manpage;
mysql> insert into user (host,user,password) values ('localhost','manpage',password('manpage'));
mysql> insert into user (host,user,password) values ('Host1','manpage',password('manpage1'));
mysql> insert into user (host,user,password) values ('Host2','manpage',password('manpage2'));
mysql> insert into user (host,user,password) values ('Host3','manpage',password('manpage3'));
# 위에서 패스워드에 1,2,3이 붙은것은 하나의 사용자에 대해 호스트별로 패스워드를 다르게 줄수 있
다는것을 보여주는 것입니다.
# DB 테이블 정보입력
mysql> insert into db values
('localhost','manpage','manpage','y','y','y','y','y','y','y','y','y','y');
# 해당사용자의 user테이블에 지정된 모든 원격지 호스트에 대한 접속을 허용하도록 설정한다.
mysql> update db set host='%' where db='manpage';
mysql> flush privileges;
# manpage 사용자에게 지정된 호스트를 보도록 하자.
mysql> select host,user from user where user='manpage';
+------------------------+---------+
| host | user |
+------------------------+---------+
| localhost | manpage |
| Host1 | manpage |
| Host2 | manpage |
| Host3 | manpage |
+------------------------+---------+
# Host1,2,3에 대해 각각의 사용자 홈계정에 다음과 같은 index.php파일을 만들어서 테스트해보자.
<?
$db_conn = mysql_connect('원격DB호스트', 'User', 'Passwd');
mysql_select_db('DB이름', '$db_conn');
if (!$db_conn) { echo "디비연결실패"; }
else { echo "디비연결성공"; }
?>
위와 같은 파일을 만들어 테스트해보면 각각의 호스트마다 서로다른 패스워드로 원격접속이 가능함을 볼수 있다.
원격디비접속은 생각외로 쉽다. :)
자료출처
http://www.superuser.co.kr/open_lecture/manpage/page05.htm
+ 원격의 디비에 접속하기위한 Host1, Host2, Host3가 있고 DB서버인 Host4가 있다고 가정했을 때..
원격디비서버에서 User테이블에 원격접속을 허용할 호스트를 입력해주고 DB 테이블에서 사용자에게 지정된 모든 호스트를 지정해주거나 원하는 호스트를 지정해 주면 됩니다.
+ DB 서버설정하기.
sueni@bbung ...]# mysql -uroot -p mysql
password: *********
# manpage라는 하나의 사용자를 등록 후 해당사용자에 대한 정보로 원격에서 접속하도록 설정해
보겠다.
먼저 DB를 하나 만들도록 합니다.
mysql> create database manpage;
mysql> insert into user (host,user,password) values ('localhost','manpage',password('manpage'));
mysql> insert into user (host,user,password) values ('Host1','manpage',password('manpage1'));
mysql> insert into user (host,user,password) values ('Host2','manpage',password('manpage2'));
mysql> insert into user (host,user,password) values ('Host3','manpage',password('manpage3'));
# 위에서 패스워드에 1,2,3이 붙은것은 하나의 사용자에 대해 호스트별로 패스워드를 다르게 줄수 있
다는것을 보여주는 것입니다.
# DB 테이블 정보입력
mysql> insert into db values
('localhost','manpage','manpage','y','y','y','y','y','y','y','y','y','y');
# 해당사용자의 user테이블에 지정된 모든 원격지 호스트에 대한 접속을 허용하도록 설정한다.
mysql> update db set host='%' where db='manpage';
mysql> flush privileges;
# manpage 사용자에게 지정된 호스트를 보도록 하자.
mysql> select host,user from user where user='manpage';
+------------------------+---------+
| host | user |
+------------------------+---------+
| localhost | manpage |
| Host1 | manpage |
| Host2 | manpage |
| Host3 | manpage |
+------------------------+---------+
# Host1,2,3에 대해 각각의 사용자 홈계정에 다음과 같은 index.php파일을 만들어서 테스트해보자.
<?
$db_conn = mysql_connect('원격DB호스트', 'User', 'Passwd');
mysql_select_db('DB이름', '$db_conn');
if (!$db_conn) { echo "디비연결실패"; }
else { echo "디비연결성공"; }
?>
위와 같은 파일을 만들어 테스트해보면 각각의 호스트마다 서로다른 패스워드로 원격접속이 가능함을 볼수 있다.
원격디비접속은 생각외로 쉽다. :)
자료출처
http://www.superuser.co.kr/open_lecture/manpage/page05.htm
관련링크
댓글목록
등록된 댓글이 없습니다.