服务跑不起来(关于配置文件):
报错:
Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:171) ~[?:1.8.0_321]
at sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:106) ~[?:1.8.0_321]
at sun.security.ssl.TransportContext.kickstart(TransportContext.java:237) ~[?:1.8.0_321]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:405) ~[?:1.8.0_321]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:384) ~[?:1.8.0_321]
Caused by: com.mysql.cj.core.exceptions.CJCommunicationsException: Communications link failure
原因:数据库配置(增加useSSL=false)
#spring.datasource.url=jdbc:mysql://ip:3306/dbuser?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true&serverTimezone=Asia/Shanghai
spring.datasource.url=jdbc:mysql://ip:3306/dbuser?useUnicode=true&characterEncoding=utf8&allowPublicKeyRetrieval=true&useSSL=false&tinyInt1isBit=false
解释代码
这是一个Spring Boot应用程序的配置文件中的一行代码,用于设置数据库连接信息。具体解释如下:
-
spring.datasource.url
:这是Spring Boot中用于配置数据源URL的属性。 -
jdbc:mysql://ip:3306/dbuser
:这是JDBC URL,用于指定数据库的类型(MySQL)、主机地址(ip)、端口号(3306)以及数据库名称(dbuser)。 -
useUnicode=true
:这个参数表示使用Unicode字符集。 -
characterEncoding=utf8
:这个参数表示使用UTF-8字符编码。 -
allowPublicKeyRetrieval=true
:这个参数表示允许从服务器获取公钥。 -
useSSL=false
:这个参数表示不使用SSL加密连接。 -
tinyInt1isBit=false
:这个参数表示将TINYINT类型映射为Java的byte类型,而不是boolean类型。
另外:
远程数据库连接之前正常连接,运行几次项目后(状态:启动失败)后被远程数据库拒绝连接应该也是这个原因
Error number 1129
Host 'ip' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
PS:两个配置文件都要修改->clean->pakeage(修改配置文件后需要打包)
重新clean和package操作的情况:
在IDEA项目中,以下几种情况可能需要执行重新clean和package操作:文章来源:https://www.toymoban.com/news/detail-830671.html
- 代码变更:当项目中的源代码发生了修改,需要将这些变更反映到最终的构建产物中时,应该执行重新clean和package操作。这样可以确保新的代码被编译并包含在内。
- 依赖更新:如果项目的依赖关系发生了变化,比如添加或移除了依赖库,或者依赖库的版本发生了更改,通常需要重新执行构建过程以获取正确的构建结果。
- 配置文件修改:对于项目中的配置文件进行了修改,这些改动需要反映到打包文件中,以确保运行时环境能够正确加载配置。
- 构建脚本更新:如果项目的构建脚本(如pom.xml对于Maven项目)有所更改,比如改变了插件版本、添加了新的构建步骤等,需要重新执行构建以确保这些更改生效。
- 解决构建错误:在构建过程中遇到错误或异常,清除之前的构建产物可以帮助解决某些由于残留文件导致的问题。
- 准备部署:在将项目部署到服务器或发布环境之前,通常需要执行一次完整的构建过程,以确保部署的是最新且经过完整构建的产物。
- 多模块项目变更:对于包含多个模块的项目,任何一个模块的变更都可能需要重新clean和package整个项目,以确保所有模块之间的依赖关系得到正确处理。
- 环境切换:在不同的开发环境(如开发环境、测试环境、生产环境)之间切换时,可能需要重新构建项目,以适应不同环境的配置和需求。
- CI/CD流程:在持续集成/持续部署(CI/CD)的自动化流程中,每次代码提交都会触发自动构建,这通常包括clean和package步骤,以确保生成的构件是最新的。
- 性能优化或重构:在进行性能优化或重构代码后,需要重新构建项目以确保性能提升或重构的结果被正确集成。
- 版本升级:升级项目所使用的框架或库的版本后,可能需要重新构建以适应新版本的特性和要求。
总之,任何可能影响最终构建产物的情况,都可能需要执行重新clean和package操作。这样做可以确保项目的稳定性和可靠性,避免因为旧的构建产物导致的不一致问题。文章来源地址https://www.toymoban.com/news/detail-830671.html
到了这里,关于javax.net.ssl.SSLHandshakeException: No appropriate protocol的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!