到目前为止,我只使用了来自java个应用程序或bash脚本的mysql_native_password个身份验证,如下所示.

application.properties:

spring.datasource.username=root
spring.datasource.password=rootpw

或本地bash脚本:

export MYSQL_PWD=rootpw; mysql --user=root --database=mytable -e "INSERT INTO mytable VALUES(...)"

问:我如何才能在迁移caching_sha2_password个应用程序的同时,仍然能够使用上面的用户名/密码组合对这些应用程序进行身份验证?

推荐答案

首先打开MySQL配置,它是my.cnfmy.ini,然后在[mysqld]部分下写下如下所示:

default_authentication_plugin=caching_sha2_password

现在使用超级用户帐户转到MySQL服务器,并编写以下SQL命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'root_password';

在你的Spring Boot和application.properties中像这样进入:

spring.datasource.username=root
spring.datasource.password=root_password

在本机bash脚本的末尾,只需使用MYSQL_PWD环境变量!

大概是这样的:

export MYSQL_PWD=rootpw; mysql --user=root --database=mytable -e "INSERT INTO mytable VALUES(...)"

Java相关问答推荐

是否需要关闭Executors返回的执行器.newVirtualThreadPerTaskExecutor()?

gitlab ci不会运行我的脚本,因为它需要数据库连接'

CSS应用于一个端点,但不应用于Thymeleaf中的另一个端点

在现代操作系统/硬件上按块访问数据值得吗?

Java模式匹配记录

为什么我要创建一个单独的互斥体/锁对象?

RESTful框架类字段是安全的还是不安全的

为什么JAVA&S清洁器使用链表而不是并发HashSet?

第二次按下按钮后,我需要将按钮恢复到其原始状态,以便它可以再次工作

Mac上的全屏截图在使用JavaFX时不能正常工作吗?

Spring Security不允许加载js

MimeMessage emlMessage=new MimeMessage(Session,emlInputStream);抛出InvocationTargetException

Docker不支持弹性APM服务器

带有Health Check的Spring Boot BuildPack打破了本机映像构建过程

Java嵌套流查找任意值

JXBrowser是否支持加载Chrome扩展?

在Java Spring JPA中插入包含对其他实体的引用的列

在Spring Boot中使用咖啡因进行缓存-根据输出控制缓存

如何使用stream.allMatch()为空流返回false?

setMaxTotal实际上是做什么的? (MySQL与Java和Apache BasicDataSource连接池)