我正在将MySQL-8.0与MySQL Workbench连接起来并出现以下错误:
无法加载身份验证插件“ caching_sha2_password”:dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so,2):找不到映像
我也尝试过使用其他客户端工具。
有什么解决办法吗?
我正在将MySQL-8.0与MySQL Workbench连接起来并出现以下错误:
无法加载身份验证插件“ caching_sha2_password”:dlopen(/usr/local/mysql/lib/plugin/caching_sha2_password.so,2):找不到映像
我也尝试过使用其他客户端工具。
有什么解决办法吗?
Answers:
注意:对于MAC OS
您可以像这样更改密码的加密。
ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword';
对于Windows 10:
打开命令提示符:
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
C:\Program Files\MySQL\MySQL Server 8.0\bin> mysql -u root -p
Enter password: *********
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newrootpassword';
Query OK, 0 rows affected (0.10 sec)
mysql> exit
另外,您可以按以下方式更改my.ini配置:
[mysqld]
default_authentication_plugin=mysql_native_password
重新启动MySQL Server并再次打开工作台。
my.ini
文件位置:stackoverflow.com/a/20311286/923560
您可以使用下面的Alter命令更改用户,从而更改用户密码的加密:
ALTER USER'username'@'ip_address'用mysql_native_password标识并通过'password';
要么
我们可以通过使用旧密码插件来避免此错误:
首先在Windows中的Linux / my.ini文件的my.cnf文件中更改身份验证插件:
[mysqld]
default_authentication_plugin = mysql_native_password
重新启动mysql服务器以影响更改,并尝试通过MySQL与任何mysql客户端连接。
如果仍然无法连接并出现以下错误:
Unable to load plugin 'caching_sha2_password'
这意味着您的用户需要上述插件。因此,尝试在更改默认插件后使用create user或grant命令创建新用户。那么新用户需要本机插件,您就可以连接MySQL。
谢谢
当前(在2018/04/23上),您需要下载开发版本。该GA那些不工作。
我无法连接到最新的GA版本(6.3.10)。
它与mysql-workbench-community-8.0.11-rc-winx64.msi
(从https://dev.mysql.com/downloads/workbench/,选项卡Development Releases)一起使用。
我遇到了同样的问题,但是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';
你们都准备好了
docker exec -it CONTAINER_ID mysql --user=root --password
依赖于存在的,而不是两个命令bash
外壳(这是不是一定在未来的)?
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7
我正在使用“ MySQL Web Installer ” 在Windows 10 PC上安装MySQL,并且在尝试使用MySQL工作台进行连接时遇到相同的问题。我通过从“安装程序”窗口重新配置服务器来解决此问题。
单击“重新配置”选项,它将允许重新配置服务器。单击“下一步”,直到到达“身份验证方法”。
在此选项卡上后,使用第二个选项“使用旧版身份验证方法(保持MySQL 5.x兼容性)”。
保持其他一切不变,这就是我解决问题的方式。
好的,这浪费了很多时间,所以这里是截至2019年3月19日的摘要
如果您专门尝试将Docker映像与MySql 8+结合使用,然后使用SequelPro访问在该Docker 容器上运行的数据库,那么您会很不走运。
我的设置是使用docker desktop 2.0.3.0(mac-mojave)的sequelpro 1.1.2,并尝试使用mysql:latest(v8.0.15)。
正如其他人所报道的那样,使用mysql 5.7不需要任何操作:
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7
当然,可以在docker上使用MySql 8+,在这种情况下(如果需要),此处提供的其他有关caching_sha2_password
类型问题的答案也可以使用。但是sequelpro对于MySql 8+来说是行不通的
最后,我放弃了sequelpro(2013-2014年的可信赖朋友),而是安装了DBeaver。一切开箱即用。对于docker,我使用了:
docker run -p 3306:3306 --name mysql1 -e MYSQL_ROOT_PASSWORD=secret -d mysql:latest --default-authentication-plugin=mysql_native_password
您可以使用以下方法快速查看mysql数据库:
docker exec -it mysql1 bash
mysql -u root -p
show databases;
brew cask install homebrew/cask-versions/sequel-pro-nightly
。
mysql
客户端)和ALTER
其myslq.user表,注意这里:github.com/sequelpro/sequelpro/issues/...
mysql_native_password
,则可以遵循以下步骤:stackoverflow.com/a/56402217/2321594
像这样?
docker run -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql --default-authentication-plugin=mysql_native_password
mysql -uroot --protocol tcp
https://github.com/GitHub30/docs/blob/change-default_authentication_plugin/mysql/stack.yml
或者您应该使用MySQL Workbench 8.0.11。
打开MySQL命令行客户端
使用新通行证创建新用户
考虑到顶部bin文件夹的路径示例,这是您需要在命令提示符下逐行运行的代码:
cd C:\Program Files\MySQL\MySQL Server 5.7\bin
MySQL -u root -p
current password...***
CREATE USER 'nativeuser'@'localhost'
IDENTIFIED WITH mysql_native_password BY 'new_password';
使用上述用户名(本地用户)建立新的本地主机连接,使用密码(new_password)登录
礼貌:Career365团队回答的UDEMY常见问题解答
root
无密码连接时出现此错误,该密码在命令行中有效,但在中无效Sequel Pro
。
对于使用Docker或Docker Compose的用户,由于未设置MySQL映像版本,因此遇到了此错误。Docker将自动尝试获取最新版本为8。
我将MySQL设置为5.7并重建了图像,它正常工作:
version: '2'
services:
db:
image: mysql:5.7
mysql:5.7
而不是mysql:latest
为我解决问题
这是我在docker-compose中的databdase定义:
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 |
+---+
对于Windows 10,
修改my.ini
文件C:\ProgramData\MySQL\MySQL Server 8.0\
[mysqld]
default_authentication_plugin=mysql_native_password
重新启动MySQL服务。
在命令行上登录到MySQL,然后在MySQL中执行以下命令:
创建一个新用户。
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
授予所有特权。
GRANT ALL PRIVILEGES ON * .* TO 'user'@'localhost';
打开MySQL工作台,并使用新的用户凭据打开新的连接。
我正面临着同样的问题,并且这个方法可行。
这是在Windows 10上安装MySQL 8.0后为我工作的解决方案。
假设MySQL用户名是root
,密码是admin
打开命令提示符,然后输入以下命令:
cd C:\ Program Files \ MySQL \ MySQL Server 8.0 \ bin
mysql_upgrade -uroot -padmin
mysql -uroot -padmin
ALTER USER'root'@'localhost'由mysql_native_password标识为'admin'
我找到
ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';
本身不能工作。我还需要设置
[mysqld]
default_authentication_plugin=mysql_native_password
在运行PHP 7.0的Ubuntu 18.04上的/etc/mysql/mysql.conf.d/mysqld.cnf中
打开我的sql命令promt:
然后输入mysql密码
最终使用:
ALTER USER 'username'@'ip_address' IDENTIFIED WITH mysql_native_password BY 'password';
请参阅:https://stackoverflow.com/a/49228443/6097074
谢谢。
几乎与上面的答案类似,但可能只是简单的查询,在MySQL升级后,我在Spring Boot应用程序中出现了此错误,并进入了休眠状态。我们通过对数据库运行以下查询来创建新用户。我相信这是暂时解决方法,可以使用sha256_password代替最新且良好的身份验证caching_sha2_password。
CREATE USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pa$$word';
GRANT ALL PRIVILEGES ON * .* TO 'username'@'localhost';
如果您尝试从另一台计算机(无论是否为Docker)从基于文本的MySQL客户端连接到MySQL服务器,
这里的大多数答案都涉及从桌面客户端进行连接,或者要求您切换到较旧的身份验证方法。如果您将其与MySQL客户端(基于文本)连接,则可以使其与Docker容器中的Debian Buster一起使用。
假设您已经安装了apt系统和wget,请执行以下操作:
sudo apt-get update
sudo apt-get install lsb-release -y
sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb
并选择所需的选项。就我而言,我只需要MySQL Tools & Connectors
启用即可。sudo apt-get update
sudo apt-get install mysql-client -y
尝试在下载和安装MySql时使用旧密码,这对我有所帮助。或遵循Santhosh Shivan针对Mac OS发布的方法。
我通过安装MySQL 5.7解决了这个问题:
首先,您需要在系统上启用MySQL 5.7社区发布的yum存储库。用于yum存储库配置的rpm软件包可在MySQL官方网站上找到。根据您的操作系统版本使用以下命令中的on。
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el6-9.noarch.rpm
dnf install https://dev.mysql.com/get/mysql57-community-release-fc27-9.noarch.rpm
dnf install https://dev.mysql.com/get/mysql57-community-release-fc26-9.noarch.rpm
dnf install https://dev.mysql.com/get/mysql57-community-release-fc25-9.noarch.rpm
在系统上成功启用MySQL yum存储库后。现在,根据您的操作系统版本,使用以下命令安装MySQL 5.7社区服务器。
yum install mysql-community-server
dnf install mysql-community-server