springboot2.X连接mysql8.0.X遇到的问题解决

分享 未结 0 438
你的瓦刀
你的瓦刀 站长 2020年2月25日 21:47 编辑
点击群号免费加入尼特社区交流群:955295791
<p id="descriptionP"><p></p><h3 id="f72105cf-827b-a649-14d3-b90bc6894239"><span style="font-weight: bold;">问题:</span></h3>连接时报错,加上各种url参数依然报错,<br>主要有两个错误<p></p><blockquote>Access denied for user ‘root’@‘IP地址’ (using password: YES)<br>Public Key Retrieval is not allowed&nbsp;&nbsp;</blockquote>即使加上useSSL=false&amp;allowPublicKeyRetrieval=true</p><pre><code>jdbc:mysql://IP地址:3306/demo?useSSL=false&amp;serverTimezone=Asia/Shanghai&amp;allowPublicKeyRetrieval=true&amp;rewriteBatchedStatements=true</code></pre><p id="descriptionP"><p></p><p>也无济于事.<br>mysql命令行执行</p><pre><code>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root123';<br>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123';<br>flush privileges;</code></pre></p><p><p>同样无效<br></p><p><br></p><h3 id="2d2095b2-41be-e4fd-b1c2-503336d5ef57"><span style="font-weight: bold;">最终解决方案:</span></h3><span style="color: rgb(255, 0, 0);">在appliaction.properties中配置spring.datasource且给hikari单独配置数据库(也就是说同样的配置要写2遍),并明确指定使用HikariDataSource(你要使用其他的连接池同理)<br>与时区之类的乱七八糟的参数统统无关</span></p><pre><code>spring.datasource.url=jdbc:mysql://IP地址:3306/demo?useSSL=false<br>spring.datasource.username=root<br>spring.datasource.password=root123<br>spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver<br>#明确指定type<br>spring.datasource.type=com.zaxxer.hikari.HikariDataSource<br>#同样的配置单独给连接池再来一份<br>spring.datasource.hikari.jdbc-url=jdbc:mysql://IP地址:3306/demo<br>spring.datasource.hikari.username=root<br>spring.datasource.hikari.password=root123<br>spring.datasource.hikari.driver-class-name=com.mysql.cj.jdbc.Driver</code></pre><p>或者直接禁用数据源自动配置(DataSourceAutoConfiguration)</p><pre><code>//启动类的SpringBootApplication排除DataSourceAutoConfiguration<br>@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})</code></pre><p><p></p></p><p><br></p>
收藏(0)  分享
相关标签: 教程 java springboot mysql
注意:本文归作者所有,未经作者允许,不得转载
0个回复
  • 消灭零回复