前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决MySQL连接问题:Access Denied和SSL警告;MySQL数据库连接失败:Access Denied异常的解决方法;如何在Java应用程序中正确配置MySQL数据库连接

解决MySQL连接问题:Access Denied和SSL警告;MySQL数据库连接失败:Access Denied异常的解决方法;如何在Java应用程序中正确配置MySQL数据库连接

作者头像
命运之光
发布2024-03-20 13:15:20
4300
发布2024-03-20 13:15:20
举报
文章被收录于专栏:我在本科期间写的文章
问题背景

今天遇见一个这个问题,解决后发出来分享一下:

我下载了mysql-connector-java-8.0.11.jar

报错“Connected to the target VM, address: '127.0.0.1:59549', transport: 'socket' Wed Sep 13 16:56:02 CST 2023 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification. java.sql.SQLException: Access denied for user 'username'@'localhost' (using password: YES) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:127) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:95) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:862) at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:444) at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:230) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:226) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:247) at BookManagement.<init>(BookManagement.java:21) at BookManagement.main(BookManagement.java:62) Disconnected from the target VM, address: '127.0.0.1:59549', transport: 'socket' 进程已结束,退出代码 0

解决办法

这个错误表明有两个问题:

  1. SSL 警告:默认情况下,MySQL 8+ 版本的 JDBC 连接尝试使用 SSL,但如果没有为此配置适当的证书,会收到一个警告。在开发环境中,通常可以安全地禁用 SSL(尽管在生产环境中,建议配置并使用 SSL)。
  2. 访问被拒绝:这意味着提供的用户名和密码不正确,或该用户没有权限连接到指定的数据库。
解决步骤:
  1. 处理 SSL 警告:为你的数据库 URL 添加 useSSL=false 参数来禁用 SSL。 将此行:
代码语言:javascript
复制
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/BookManagement", "username", "password");

改为:

代码语言:javascript
复制
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/BookManagement?useSSL=false", "username", "password");

处理访问拒绝问题

  • 确保你的 MySQL 数据库正在运行并且可以从 localhost 访问。
  • 使用正确的用户名和密码替换上面 URL 中的 "username""password"。例如,如果你的 MySQL 用户名是 root,密码是 mysecret,那么连接代码应更改为:
  • 如果你不确定用户名和密码,你需要检查 MySQL 的配置或联系数据库管理员。

应用上述更改后,再次运行你的程序。这应该会解决你遇到的问题。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决办法
    • 解决步骤:
    相关产品与服务
    云数据库 MySQL
    腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档