0

我有一个使用 putty 访问的 linux 服务器。

我使用 SQuirrel SQL 客户端程序访问该服务器的 mysql 数据库。

一切正常。现在我买了一台新的 windows 电脑,我想安装所有相同的应用程序来访问我的 linux 服务器。

我可以很好地使用 putty 访问我的服务器。

我安装了 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 **

我怎样才能解决这个问题 ?

4

1 回答 1

0

1

编辑/etc/my.cnf

跑:vi /etc/my.cnf

查找bind-address=YOUR-SERVER-IP并注释掉。


2 授予对新数据库的访问权限

如果要为用户 bar 和远程 IP 202.54.10.20 添加一个名为 foo 的新数据库,则需要在以下位置键入以下命令

mysql> prompt:
mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'202.54.10.20' IDENTIFIED BY 'PASSWORD';

如何授予对现有数据库的访问权限?

让我们假设您始终从名为 202.54.10.20 的远程 IP 建立连接,用于用户 webadmin 的名为 webdb 的数据库,要授予对该 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 服务器实例,这应该允许您远程连接。

于 2014-04-01T11:06:23.993 回答