weixin_74936623 2024-05-27 23:17 采纳率: 0%
浏览 377

idea数据库测试连接成功,用户名和密码正确,但运行代码页面报错用户名或密码错误

idea数据库测试连接成功,用户名和密码正确,但运行代码页面报错用户名或密码错误javax.servlet.ServletException: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

img

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-05-27 23:17
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    根据您提供的截图和描述,问题似乎出在JSP页面尝试连接MySQL数据库时,尽管在IDEA中测试连接成功,但实际运行时却遇到了权限问题。错误信息表明用户root在尝试连接到localhost时被拒绝,尽管密码被标记为已使用(using password: YES)。

    首先,让我们检查几个可能的问题点:

    1. 数据库连接字符串:确保连接字符串是正确的。通常,它应该包括数据库的主机名、端口、数据库名、用户名和密码。格式类似于:

      jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8
      

      注意,您截图中的连接字符串使用了GB2312作为字符编码,这可能不是最佳选择,建议使用UTF-8

    2. 用户名和密码:确认在JSP页面中使用的用户名和密码与数据库中设置的完全一致。

    3. 权限设置:检查MySQL数据库中root用户的权限设置,确保该用户有足够的权限连接到数据库并执行查询。可以通过MySQL命令行或图形界面工具(如phpMyAdmin)来检查和修改权限。

    4. 密码加密:如果MySQL服务器配置了密码加密,确保在连接字符串中使用正确的密码。

    5. 防火墙或网络问题:确保没有防火墙或网络设置阻止应用程序与数据库服务器的连接。

    下面是一段示例代码,展示如何在JSP页面中建立数据库连接并执行查询:

    <%@ page import="java.sql.*" %>
    <%
        String driverName = "com.mysql.cj.jdbc.Driver"; // MySQL JDBC驱动
        String url = "jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=UTF-8";
        String userName = "root";
        String userPwd = "您的密码";
    
        try {
            Class.forName(driverName);
            Connection conn = DriverManager.getConnection(url, userName, userPwd);
            String sql = "SELECT * FROM 表名";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            ResultSet rs = pstmt.executeQuery();
    
            while (rs.next()) {
                // 处理结果集
            }
    
            rs.close();
            pstmt.close();
            conn.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    %>
    

    参考资料

    如果您需要进一步的帮助,建议您提供更多的代码上下文或错误日志,以便更准确地诊断问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月27日