首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从java连接到MYSQL数据库

无法从java连接到MYSQL数据库
EN

Stack Overflow用户
提问于 2016-06-01 20:53:40
回答 2查看 1.1K关注 0票数 0

我刚接触MySQL和UNIX,实际上是从一个UNIX机器到另一个UNIX机器,我是用ssh -i commonprivatekey -p 60041 root@172.16.28.102连接的。一旦连接上,我就可以执行mysql -uroot -ppassword mysql命令了。

环境详细信息:

代码语言:javascript
复制
IP               : 172.16.28.102
SSH Port         :  60041
usernames        :  root
passwords        :  password
SSH Privatekey   :  commonprivatekey
mySQL DB Port    :  60040
mySQL DB Name    :  mysql
mySQL DB UserID  :  root
mySQL DB Password:  password

我的Java代码是

代码语言:javascript
复制
try {
  Class.forName("com.mysql.jdbc.Driver");
  conn = DriverManager.getConnection("jdbc:mysql://172.16.28.102:60040/mysql", "root", "password");
}  catch (SQLException e) {
  logger.error("Could not connect to the database", e);
}

异常跟踪:

代码语言:javascript
复制
Caused by: java.sql.SQLException: null,  message from server: "Unknown error 1130"
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1095)
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    at java.sql.DriverManager.getConnection(DriverManager.java:664)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)
    at uk.accenture.fdt.batch.control.ConnectionsHelper.getDatabaseConnection(ConnectionsHelper.java:35)
EN

回答 2

Stack Overflow用户

发布于 2016-06-01 23:03:53

您的应用程序是否与mysql数据库在同一台服务器上?错误1130听起来像是不允许用户连接到数据库。可能客户端IP不允许连接到该数据库。例如,如果您有一个root@locahost用户,则只能从同一服务器进行连接。因此,创建一个允许从该IP连接的用户。我猜用户应该有你要连接的盒子里的IP地址。

代码语言:javascript
复制
CREATE USER '<username>'@'<ip from the box>' IDENTIFIED BY '<password>';

当然,你需要给他适当的权利。下面的代码应该为他提供所有权限。你可能不需要它。

代码语言:javascript
复制
GRANT ALL PRIVILEGES ON <database name>.* TO '<username>'@'<ip from the box>';
票数 0
EN

Stack Overflow用户

发布于 2016-06-01 21:06:36

i)u在您的库文件夹中添加一个mysql连接器jar文件,然后右键单击lib->buildpath->configurebuildpath,然后它将显示输入属性对话框,然后单击库->添加外部jar ->添加您的jar文件,然后单击订单和支持->选择所有项目->单击确定。ii)转到您的项目右键单击bulidpath->configure buildpath->ok

如果你做了正确的事情,在你的数据库中检查你的列名。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37569287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档