Java中通过SSH远程访问mySQL

Java中通过SSH远程访问mySQL,java,mysql,ssh,Java,Mysql,Ssh,我正在尝试将本地Java应用程序连接到远程mySQL服务器。我有对服务器及其mySQL的shell访问权限,但没有根访问权限 我试图实现我在网上找到的一些代码,这些代码似乎实现了这个目标。首先,我使用SSH访问服务器,然后尝试访问mySQL数据库。但是,我得到以下错误: Jul 09, 2014 2:20:06 PM [myClassName] connect SEVERE: null, message from server: "Host '[remoteHost]' is not allo

我正在尝试将本地Java应用程序连接到远程mySQL服务器。我有对服务器及其mySQL的shell访问权限,但没有根访问权限

我试图实现我在网上找到的一些代码,这些代码似乎实现了这个目标。首先,我使用SSH访问服务器,然后尝试访问mySQL数据库。但是,我得到以下错误:

Jul 09, 2014 2:20:06 PM [myClassName] connect
SEVERE: null,  message from server: "Host '[remoteHost]' is not allowed to connect to this MySQL server"
我理解mySQL默认不允许远程客户端访问,但我不理解的是,在这种情况下,它似乎不允许自己访问自己的mySQL服务器。(即,错误消息中的[“remoteHost”]与我试图访问的mySQL服务器所在的主机相同。)

下面是我使用的代码模板。为了解决这个问题,我将所有字段(user、pass、host等)保留在模板上

我是否需要要求系统管理员授予我特殊权限?通过终端访问mySQL服务器没有问题。提前谢谢大家

卡希姆扬项目的信贷()


要确定您的问题是否与Java相关,您可以尝试将
telnet
连接到SQL server

$ telnet localhost 3306
如果不允许您连接,您将收到与您的类似的错误消息。 要允许访问,您的系统管理员需要运行以下操作:

$ mysql -u root -p
Enter password:

mysql> use mysql

mysql> GRANT ALL ON *.* to root@'localhost' IDENTIFIED BY 'your-root-password'; 

mysql> FLUSH PRIVILEGES;
关于您的问题(SQL server不允许从localhost访问):只有在确实必要时才允许访问。因此,如果您只有远程SQL客户端,则无需允许从主机
localhost
进行访问

$ mysql -u root -p
Enter password:

mysql> use mysql

mysql> GRANT ALL ON *.* to root@'localhost' IDENTIFIED BY 'your-root-password'; 

mysql> FLUSH PRIVILEGES;