我正在连接MySQL - 8.0与MySQL工作台和得到以下错误:

无法加载认证插件“caching_sha2_password”: dlopen (/ usr /地方/ mysql / lib /插件/ caching_sha2_password。所以,2):图像 没有找到

我也尝试过其他客户端工具。

有什么解决办法吗?


当前回答

您可以像这样更改密码的加密。

ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';

其他回答

像这样的吗?

docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql --default-authentication-plugin=mysql_native_password
mysql -uroot --protocol tcp

试试PWD

https://github.com/GitHub30/docs/blob/change-default_authentication_plugin/mysql/stack.yml

或者你应该使用MySQL Workbench 8.0.11。

实际上MySql在安装时允许两种类型的身份验证。

密码加密 传统加密

在这里阅读

因此,通过检查遗留身份验证,问题得到了解决。

我通过安装MySQL 5.7解决了这个问题:

步骤1 -启用MySQL存储库

首先,你需要在你的系统上启用MySQL 5.7社区发行版yum存储库。yum repository配置的rpm包可在MySQL官网获取。根据您的操作系统版本使用以下命令中的任意一个。

关于CentOS和RHEL 7

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm

关于CentOS和RHEL 6

yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm

在Fedora 27上

dnf install https://dev.mysql.com/get/mysql57-community-release-fc27-9.noarch.rpm

在Fedora 26上

dnf install https://dev.mysql.com/get/mysql57-community-release-fc26-9.noarch.rpm

在Fedora 25上

dnf install https://dev.mysql.com/get/mysql57-community-release-fc25-9.noarch.rpm

步骤2 -安装MySQL 5.7 Server

因为你已经成功地在你的系统上启用了MySQL yum存储库。现在,根据您的操作系统版本,使用以下命令安装MySQL 5.7社区服务器。

关于CentOS和RHEL 7/6

yum install mysql-community-server

在Fedora 27/26/25

 dnf install mysql-community-server

来源:https://tecadmin.net/install-mysql-5-7-centos-rhel/

这是我在docker-compose中的数据库定义:

dataBase:
    image: mysql:8.0
    volumes:
        - db_data:/var/lib/mysql
    networks:
        z-net:
            ipv4_address: 172.26.0.2
    restart: always
    entrypoint: ['docker-entrypoint.sh', '--default-authentication-plugin=mysql_native_password']
    environment:
        MYSQL_ROOT_PASSWORD: supersecret
        MYSQL_DATABASE: zdb
        MYSQL_USER: zuser
        MYSQL_PASSWORD: zpass
    ports:
        - "3333:3306"

相关的行是入口点。

在构建和建立它之后,你可以用以下方法测试它:

$ mysql -u zuser -pzpass --host=172.26.0.2  zdb -e "select 1;"
Warning: Using a password on the command line interface can be insecure.
+---+
| 1 |
+---+
| 1 |
+---+

打开sql命令提示符:

然后输入mysql密码

最后使用:

ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password'

参见:https://stackoverflow.com/a/49228443/6097074

谢谢。