gpt4 book ai didi

java - 如何使用jdbc代码手动连接mysql?

转载 作者:行者123 更新时间:2023-11-29 12:59:48 24 4
gpt4 key购买 nike

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

<b>java.sql.SQLException: Access denied for user 'someuser'@'127.101.5.73' (

使用密码:是)

我很确定一切都是正确的,因为它在我的开发设置中就像一个魅力,但它在测试环境中不起作用,所以一定有问题。下面的代码是我用来尝试连接数据库的代码。 propertiesMap 变量保存从 jdbc.properties 文件读取的数据库信息:

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 解析为:

jdbc:mysql://192.168.1.55:3306/somedatabase?user=someuser&password=somepassword

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

最佳答案

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

GRANT ALL ON somedatabase.* TO 'username'@'127.101.5.73';

关于java - 如何使用jdbc代码手动连接mysql?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23508719/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com