2014-04-01 3 views
0

나는 퍼티로 접근하는 리눅스 서버를 가지고있다.mysql 연결이 다람쥐를 거부했습니다

프로그램의 SQuirrel SQL 클라이언트를 사용하여 해당 서버의 my mysql 데이터베이스에 액세스합니다.

모든 것이 작동합니다. 이제 새로운 Windows 컴퓨터를 구입했으며 동일한 응용 프로그램을 설치하여 내 Linux 서버에 액세스하려고했습니다.

퍼티로 서버에 액세스 할 수 있습니다.

SQuirrel을 설치하고 데이터베이스에 액세스 할 수있는 동일한 드라이버, 속성을 넣었지만 작동하지 않습니다.

나는 다음과 같은 오류가 발생합니다 :

MESSAGE: Connection refused: connect 

STACKTRACE: 

java.net.ConnectException: Connection refused: connect 
    at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) 
    at java.net.Socket.connect(Socket.java:579) 
    at java.net.Socket.connect(Socket.java:528) 
    at java.net.Socket.<init>(Socket.java:425) 
    at java.net.Socket.<init>(Socket.java:208) 
    at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:121) 
    at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:220) 
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:1768) 
    at com.mysql.jdbc.Connection.<init>(Connection.java:440) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:400) 
    at net.sourceforge.squirrel_sql.fw.sql.SQLDriverManager.getConnection(SQLDriverManager.java:133) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.executeConnect(OpenConnectionCommand.java:167) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand.access$000(OpenConnectionCommand.java:45) 
    at net.sourceforge.squirrel_sql.client.mainframe.action.OpenConnectionCommand$1.run(OpenConnectionCommand.java:104) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 


** END NESTED EXCEPTION ** 

어떻게이 문제를 해결할 수 있습니까?

+0

호스트 이름으로 localhost를 사용하고 있습니까? – Luceos

+0

예 localhost를 사용하고 있습니까 – Bigjo

+0

어떻게 해결할 수 있습니까? – Bigjo

답변

0

편집 /etc/my.cnf

실행 : bind-address=YOUR-SERVER-IP하고 주석에 대한 vi /etc/my.cnf

보세요. 새 데이터베이스에


2 액세스 권한 부여

당신이 202.54.10.20 은 다음

에서 다음 명령을 입력해야합니다 사용자 표시 줄 및 원격 IP에 대한 foo는라는 새 데이터베이스를 추가하려면
mysql> prompt: 
mysql> CREATE DATABASE foo; 
mysql> GRANT ALL ON foo.* TO [email protected]'202.54.10.20' IDENTIFIED BY 'PASSWORD'; 

어떻게 기존 데이터베이스에 대한 액세스 권한을 부여합니까?

우리가, 당신은 항상 원격 IP에서 연결이 사용자으로 WebAdmin에 대한 webdb라는 데이터베이스에 대한 202.54.10.20라고하고 있습니다 가정이 IP 주소 유형에 대한 액세스 권한을 부여하자

mysql> prompt for existing database, enter: 
mysql> update db set Host='202.54.10.20' where Db='webdb'; 
mysql> update user set Host='202.54.10.20' where user='webadmin'; 

종료 MySQL의에서 다음 명령을

이제 mysql 서버 인스턴스를 다시 시작해야합니다. 원격으로 연결할 수 있어야합니다.

+0

이전 컴퓨터에서 할 필요가 없었습니다. 내 IP 주소로 het 데이터베이스에 액세스하지 않지만 루트 사용자와 함께 서버에 사용합니다. 내가 퍼티를 열고 normaly 내 서버에 MySQL 데이터베이스를 연결할 수있는 것보다. 이 컴퓨터 (Windows 7)에서 구입하면 작동하지 않습니다. – Bigjo

관련 문제