我正在连接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):图像 没有找到
我也尝试过其他客户端工具。
有什么解决办法吗?
当前回答
macOS的MySQLWorkbench 8.0.11解决了这个问题。 我可以建立连接与根密码保护mysql实例运行在docker。
其他回答
对于那些使用Docker或Docker Compose的人,我遇到了这个错误,因为我没有设置我的MySQL镜像版本。Docker将自动尝试获取最新版本,即8。
我将MySQL设置为5.7并重新构建映像,它正常工作:
version: '2'
services:
db:
image: mysql:5.7
注意:适用于Linux (Debian, Ubuntu, Mint)
我得到了这个错误:
MySQL Error Message: Plugin caching_sha2_password could not be loaded: /usr/lib/x86_64-linux-gnu/mariadb19/plugin/caching_sha2_password.so: cannot open shared object file: No such file or directory
我通过以下步骤解决了这个问题:
在mysql控制台输入:$ mysql -u root -p,如果你没有root用户的密码,那么: 使用mysql数据库:>使用mysql; mysql> Alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; 退出……mysql >退出; 完成了!
这是我在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 |
+---+
好吧,在这上面浪费了很多时间,所以这里是截至2019年3月19日的总结
如果你特别想在MySql 8+中使用Docker镜像,然后使用SequelPro来访问运行在Docker容器上的数据库,那你就不走运了。
请参阅第2699期续作
我的设置是sequelpro 1.1.2,使用docker desktop 2.0.3.0 (mac - mojave),并尝试使用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;
我通过安装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/