2009-06-02 6 views
3

나는 VPS를 가지고 있고 mysql DB를 (내 PC에서) 외부 연결을 허용하도록하고 싶다. 데비안 리눅스를 서버에 설치했습니다. 온라인 자습서를 확인한 후 댓글을 달았습니다.mysql이 외부에서 연결을 받아들이는 방법

bind-address   = 127.0.0.1 

하지만 도움이되지 않았습니다. VPS에 대해 특별한 것이 있습니까? 또는 다른 것을 놓치고 있습니까? MySQL의 실행 명령은 다음과 같습니다

/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock 

답변

4

MySQL 서버는 외부에서 연결 (적절한 네트워크 인터페이스에 바인딩)을 허용하도록 구성되어야하며 해당 포트에서 들어오는 연결을 허용하도록 방화벽을 구성해야합니다 (TCP 포트 3306). 이것은 MySQL을 설치할 때 이미 설정되어 있거나 설정되어 있지 않을 수도 있습니다 (* nix를 사용하는 경우 iptables 참조).

MySQL 권한에서 다음과 같이 고려해야합니다.

MySQL 권한을 설정할 때 @ 'localhost'에 대해서만 사용자 액세스 권한을 설정하는 경우가 많습니다. 연결하려는 호스트 이름이나 IP 주소에 대해 사용자 계정과 권한이 모두 설정되어 있는지 확인해야합니다. 입니다. (이 예제는 PHP를 사용)이 같은 것을 사용하여 원격으로 해당 서버에 연결하기 전에이 모든 일을 할 필요가

GRANT ALL PRIVILEGES ON somedatabase.* TO [email protected]'somehostname' IDENTIFIED BY 'password'; 
FLUSH PRIVILEGES; 

: 예를 들어, 사용하여 새 권한이 부여 된 사용자를 만들 수

mysql_connect('mysqlservername', 'someuser', 'password'); 
+0

PHP는 어디에 들어 있습니까? – ysth

+0

고마워요 ... 도움이되었습니다 ... 또한 포트를 열어야했습니다 : iptables -A INPUT -p tcp -m tcp -dport 3306 -j 승인 – Tam

+0

글쎄, 저는 PHP를 사용하고 있지 않지만 다른 정보 좋다 – Tam

0

당신은 컴퓨터의 외부 IP 주소의 값 대신 로컬 호스트의 IP 주소로 바인드 주소를 설정해야합니다. 나중에 MySQL 서비스를 다시 시작하는 것을 잊지 마십시오.

자세한 내용은 these other answers을 확인하십시오.

+0

그 일을 한 후에 서버로 시작할 수 없었습니다. MySQL 데이터베이스 서버 시작 : mysqld. . . . . . . . . . . . . . 실패했습니다! 포트 등을 여는 것과 관련하여해야 할 일이 있습니까? – Tam

+0

거기에 중요한 비평이있는 것으로 의심됩니다. 여기에 확장 된 줄임표가 있습니다. – ysth

1

또한 VPS 시스템의 외부 IP로 바인드 주소를 변경해야합니다 (ipconfig가 도움이됩니다).

그리고 PC에서 액세스 권한을 부여하십시오. 루트 권한으로 로컬 호스트에서 데이터베이스에 연결하고 수행

grant all privilege on *.* to `username`@`your-pc-id` identified by 'your-password' 

MySQL grant documentation 통해보고 자세한 내용은.

관련 문제