JDBC无法连接本地MySQL的原因可解决办法

概述

​ 之前一直都用的MySQL 5,最近换了MySQL 8,出了一大堆莫名其妙的问题,连用JDBC连接个数据库都出了一大堆问题,就顺便总结下,免得自己又忘了。

可能的原因:

  1. MySQL服务没启动

​ 这个我还真遇到过,是一开始做学校数据库的实验,没启动服务,非常搞笑了。

​ 一般MySQL安装的时候默认是跟随机器启动的,要是改过的话也可以手动启动:

在Windows上:

在这里插入图片描述

手动点击启动即可。

在Linux上,

sudo service mysql start

在macOS上:

#一般是这样
sudo /usr/local/mysql/support-files/mysql.server start
  1. JDBC配置文件错误

​ 这个其实也没什么好说的,就是写一些配置参数的时候不小心写错了,可以随便找个工具用这些参数连一下数据库,很快就能找到问题。

  1. 驱动包版本不够新

​ 用JDBC连接MySQL 8的时候,尽量比较新的包,可以在以下网站找下:https://mvnrepository.com/artifact/mysql/mysql-connector-java

  1. 一个奇怪的错误

​ 这个就比较诡异了,就是数据库连接工具啥的都能正常连接数据库,唯独JDBC或者直接由JDBC驱动的工具连接不上。以上错误也都可以排除,然后一直报链接被拒绝的错误。这时候就可以考虑是否端口被占用或者服务冲突的问题。

​ 我通过查看服务,排查之后发现,在我电脑上有一个xampp目录下的服务在占用端口,导致我们连接不上。同样手动关闭即可:

在这里插入图片描述

在这里插入图片描述

话说这个xmapp好像是做课程设计的时候弄的,是一个建站集成软件包,真是坑死我了。

常见错误集合

  1. java.sql.SQLException: The server time zone value xxx
    

    连接时加上时区

  2. java.sql.SQLException: Unable to load authentication plugin 'caching_sha2_password'
    

    这是因为认证插件不同造成的
    8版本前是:default_authentication_plugin=mysql_native_password
    8版本后是:default_authentication_plugin=caching_sha2_password

    解决办法:更新驱动到最新

  3. Public Key Retrieval is not allowed
    

    连接时将allowPublicKeyRetrieval设置为true

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值