提问人:membersound 提问时间:8/7/2023 更新时间:8/7/2023 访问量:166
如何将 mysql 身份验证从 mysql_native_password 迁移到 caching_sha2_password?
How to migrate mysql authentication from mysql_native_password to caching_sha2_password?
问:
到目前为止,我只使用身份验证,无论是来自应用程序还是 bash 脚本,如下所示。mysql_native_password
java
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
答:
1赞
Freeman
8/7/2023
#1
首先打开你的MySQL配置,即或,然后在部分下写如下:my.cnf
my.ini
[mysqld]
default_authentication_plugin=caching_sha2_password
现在使用root帐户转到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(...)"
评论
0赞
membersound
8/7/2023
所以最后我基本上只需要用语句为我现有的用户更改身份验证插件,而应用程序不必修改?ALTER USER
1赞
Freeman
8/7/2023
是的,您只需要使用该语句为现有用户更新身份验证插件,应用程序就可以继续使用用户名/密码组合与MySQL服务器进行身份验证,而无需进行任何修改!ALTER USER
评论