Java远程连接mysql问题

首先确定mysql成功启动,用户名密码ip等配置不存在问题

1. Communications link failure或The driver has not received any packets from the server

可能原因:

a: url配置问题(包括useSSL,时区或编码方式等的配置)

原因分析见【Bug解决】com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure - 腾讯云开发者社区-腾讯云 (tencent.com)

解决方法:

url: jdbc:mysql://远程ip:3306/数据库名称?useUnicode=true&useSSL=false&serverTimezone=GMT&characterEncoding=UTF-8

b. driver问题

mysql5.*配置:

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

mysql 8.*配置:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

c. 驱动版本问题

尝试将mysql-connect-java版本改为5.*

附:(9条消息) mysql-connector-java与Mysql、Java的对应版本_訾零的博客-CSDN博客_mysql-connector-java版本

d. linux防火墙或安全组设置问题

参考:(9条消息) 【springboot】- 连接远程服务器数据库的步骤以及第一次连接就Communications link failure可能的原因_tran_sient的博客-CSDN博客_springboot远程连接数据库

e. mysql配置不允许远程访问

找到mysql配置文件my.cnf,一般在/etc目录下。

如果该配置文件中为空(如上图)的话,可能在conf.d或mysql.conf.d文件夹中,文件名可能为mysql.cnf等,正确的配置文件长这样

 找到bind-address这一行并将其注释掉,然后通过

service mysql restart

重启mysql服务重新尝试

2. Could not create connection to database server. Attempted reconnect 3 times. Giving up.

出现这个的原因可能是在url配置中开启了自动重连autoReconnect=true,根本应该还是连接出现问题,可以去掉这个配置进行尝试。解决方法参考前文第一类问题的解决方法。

3. Access denied for user 'root'@'localhost'

mysql远程登陆未授权

解决方法:(9条消息) Access denied for user 'root'@ '*.*.*.*' (using password: YES)_王一一的博客的博客-CSDN博客_access denied for user

注意:更改授权之后需要通过以下命令刷新权限或者重启mysql服务

FLUSH PRIVILEGES;

另:更改表的时候可能报错Unknown Column 'Password' In Field List

解决方法见:(9条消息) Mysql报错“Unknown Column 'Password' In Field List”解决办法_小溪彼岸的博客-CSDN博客

以上就是我在java连接mysql时候遇到的问题以及总结出的可能解决方法,只是大佬们的搬运工罢了,希望能有所帮助。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值