首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用jdbc代码手动连接到mysql?

如何使用jdbc代码手动连接到mysql?
EN

Stack Overflow用户
提问于 2014-05-07 12:24:56
回答 1查看 702关注 0票数 0

我在论坛上看过很多这个问题,但所有的问题都略有不同,所以不适用,所以我要再问一遍。我已经创建了一个使用mysql作为后端的java web应用程序。mysql数据库安装在与web服务器不同的服务器上。在mysql中,我已经为我的web应用程序创建了一个用户,定义了用户的密码,授予了用户权限,还定义了用户可以从哪个IP地址进行连接。我已经将数据库用户信息放入web应用程序的jdbc.properties文件中。web应用程序利用Spring框架,当在web服务器上运行时,当Spring管理连接时,它能够很好地连接到数据库。然而,我有一段代码需要我使用jdbc代码手动连接到数据库,当这段代码运行时,使用与spring管理的连接完全相同的数据库连接信息,我得到错误:

代码语言:javascript
复制
<b>java.sql.SQLException: Access denied for user 'someuser'@'127.101.5.73' (

使用密码:是)

我非常确定一切都是正确的,因为它在我的开发设置中工作得很好,但它在测试环境中不起作用,所以一定是出了什么问题。下面的代码是我用来尝试连接到数据库的代码。propertiesMap变量保存从jdbc.properties文件读取的数据库信息:

代码语言:javascript
复制
private static void getResultSet(Map<String, String> propertiesMap, String sql) throws Exception {
try {
  // load the MySQL driver
  Class.forName("com.mysql.jdbc.Driver");

  // get the connection
  connect = DriverManager.getConnection(propertiesMap.get("jdbc.prod.url") + "?user=" 
          + propertiesMap.get("jdbc.prod.username") + "&password=" + propertiesMap.get("jdbc.prod.password"));

  // create the statement
  statement = connect.createStatement();

  // execute sql statement
  resultSet = statement.executeQuery(sql);

} catch (Exception e) {
  throw e;
}

}

上面代码中的连接url解析为:

代码语言:javascript
复制
jdbc:mysql://192.168.1.55:3306/somedatabase?user=someuser&password=somepassword

如果任何人能提供帮助,我将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2014-05-07 12:34:08

从异常可以看出代码的行为是正确的。尝试授予用户对数据库的访问权限:

代码语言:javascript
复制
GRANT ALL ON somedatabase.* TO 'username'@'127.101.5.73';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23508719

复制
相关文章

相似问题

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