启动项目时连接不上数据库,但navicat可以正常连接

遇到的问题:

一个新项目,由于需要远程办公,连接VPN后使用navicat等数据库连接工具的时候可以正常访问数据库,但启动项目时无法连接到数据库,报错信息如下:

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

java.lang.IllegalStateException: Failed to execute ApplicationRunner
	at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798)
	at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:785)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:345)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1356)
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1345)
	at cn.avicnet.cutter.selection.web.CutterSelectionServiceApplication.main(CutterSelectionServiceApplication.java:18)
Caused by: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: 
### Error querying database.  Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
### The error may exist in cn/avicnet/cutter/selection/system/mapper/app/AreaMapper.java (best guess)
### The error may involve cn.avicnet.cutter.selection.system.mapper.app.AreaMapper.selectList
### The error occurred while executing a query
### Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.

为了找到问题所在,就写了一个jdbc连接的测试类,结果还是连接不上,为此在网上找了很多方法,但是试过还是不行,后来请教公司大佬,说是vpn的权限问题,有IPv6和IPv4的区别,在VM这一栏加上-Djava.net.preferIPv4Stack=true就可以了

-Djava.net.preferIPv4Stack=true 是一个Java系统属性,它的作用是告诉Java虚拟机(JVM)优先使用IPv4协议栈而不是IPv6。当设置为这个属性时,应用程序将强制在IPv4协议栈上运行。这个选项可以解决一些与IPv6相关的网络问题,特别是在IPv6配置不正确或受限的环境中,它可以帮助应用程序绕过IPv6相关的问题,从而正常建立连接

具体解决方法:

我使用的是2022.3.2版本的idea,我们先点击Edit Configurations

此时找不到VM options,我们需要点击Modify options

 之后再选择add VM options,具体操作如下图

将我们需要修改的属性,即 -Djava.net.preferIPv4Stack=true加入到VM这一栏即可

重新启动idea,启动项目就能正常启动了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值