canyuehhh 2024-05-28 21:53 采纳率: 0%
浏览 190

java连接数据库时出错 Access denied for user ''@'localhost' (using password: NO)

img

img


请问各位 这个怎么错了 是连接数据库没输入密码 还是用户名 密码都没有 怎么解决啊

  • 写回答

2条回答 默认 最新

  • 阿里嘎多学长 2024-05-28 21:53
    关注

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


    根据您提供的代码片段和错误信息,以下是可能导致“Access denied for user ''@'localhost' (using password: NO)”错误的原因以及相应的解决方法:

    1. 用户名和密码未正确设置

      • 检查代码中的用户名和密码是否与数据库中的设置一致。在您提供的代码片段中,用户名为"root",密码为"123"。请确保数据库的root用户确实使用这个密码。
    2. 连接字符串中的URL错误

      • 您的连接字符串中端口号写为"33o6",这显然是一个拼写错误。正确的端口号应该是"3306",这是MySQL的默认端口。
    3. 数据库配置问题

      • 确保数据库服务正在运行,并且允许从您的应用程序所在的主机进行连接。
      • 检查MySQL的配置文件(通常是my.cnfmy.ini),确保没有禁止root用户远程连接的设置。
    4. 异常信息提示没有使用密码

      • 异常信息显示“(using password: NO)”,这意味着尝试连接时没有提供密码。在您的代码中,密码确实被设置了,所以这可能是由于其他原因导致的。
    5. 权限问题

      • 确保root用户有权限从您的应用程序所在的主机连接到数据库。
    6. 驱动类名错误

      • 代码中使用的驱动类名有误,应该是com.mysql.cj.jdbc.Driver而不是com.mysql.cj. jbdc.Driver
    7. 代码中的其他潜在错误

      • 检查代码中是否有其他拼写错误或语法错误。

    解决方法

    • 修正连接字符串中的端口号错误,将其更改为正确的端口号3306。
    • 确保数据库中的root用户密码与代码中设置的密码一致。
    • 检查MySQL配置,确保root用户可以连接。
    • 修正驱动类名错误。
    • 如果问题仍然存在,尝试在MySQL命令行中手动连接,以确定问题是否出在数据库配置上。

    参考资料

    • MySQL官方文档:https://dev.mysql.com/doc/
    • JDBC连接MySQL教程:[https://www.tutorialspoint.com/java JDBC/java_mysql.htm](https://www.tutorialspoint.com/java JDBC/java_mysql.htm)

    请注意,由于安全原因,不建议在生产环境中使用root用户进行数据库操作。考虑创建一个具有必要权限的专用数据库用户,并使用该用户进行应用程序的数据库操作。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 5月28日