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

目录

问题背景

解决办法

解决步骤:


问题背景

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

我下载了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。

    将此行:

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/BookManagement", "username", "password");

改为:

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/BookManagement?useSSL=false", "username", "password");

处理访问拒绝问题

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

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

 

🌌点击下方个人名片,交流会更方便哦~
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

命运之光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值