我正在连接MySQL - 8.0与MySQL工作台和得到以下错误:
无法加载认证插件“caching_sha2_password”: dlopen (/ usr /地方/ mysql / lib /插件/ caching_sha2_password。所以,2):图像 没有找到
我也尝试过其他客户端工具。
有什么解决办法吗?
我正在连接MySQL - 8.0与MySQL工作台和得到以下错误:
无法加载认证插件“caching_sha2_password”: dlopen (/ usr /地方/ mysql / lib /插件/ caching_sha2_password。所以,2):图像 没有找到
我也尝试过其他客户端工具。
有什么解决办法吗?
当前回答
打开sql命令提示符:
然后输入mysql密码
最后使用:
ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password'
参见:https://stackoverflow.com/a/49228443/6097074
谢谢。
其他回答
我也遇到了同样的问题,但是Aman Aggarwal的答案在运行mysql 8.X的Docker容器中对我不起作用。 我登录了集装箱
docker exec -it CONTAINER_ID bash
然后以root用户登录mysql
mysql --user=root --password
输入root密码(默认为'root') 最后运行:
ALTER USER 'username' IDENTIFIED WITH mysql_native_password BY 'password';
你都准备好了。
虽然这不是实数 解决方案,如果你被卡住了,它在本地是有效的
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
对于那些使用Docker或Docker Compose的人,我遇到了这个错误,因为我没有设置我的MySQL镜像版本。Docker将自动尝试获取最新版本,即8。
我将MySQL设置为5.7并重新构建映像,它正常工作:
version: '2'
services:
db:
image: mysql:5.7
macOS的MySQLWorkbench 8.0.11解决了这个问题。 我可以建立连接与根密码保护mysql实例运行在docker。
你可以用下面的Alter命令改变用户密码的加密:
ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY “密码”;
OR
我们可以通过使用old password插件来避免这个错误:
首先修改my.cnf文件中的认证插件,用于Linux / Windows中的my.ini文件:
(mysqld) default_authentication_plugin = mysql_native_password
重新启动mysql服务器以使更改生效,并尝试通过mysql连接任何mysql客户端。
如果仍然无法连接并得到以下错误:
Unable to load plugin 'caching_sha2_password'
这意味着你的用户需要上面的插件。所以尝试在修改默认插件后用create user或grant命令创建新用户。然后新用户需要本地插件,你将能够连接MySQL。
谢谢