![](/img/trans.png)
[英]Sequel Pro gives 'Connection failed!' error using Docker Mysql container
[英]Sequel Pro and MySQL connection failed
我刚刚从 Homebrew 在 mac 上安装了 mysql
brew install mysql
mysql -V
mysql Ver 8.0.11 for osx10.13 on x86_64 (Homebrew)
从终端它工作,我可以登录到 mysql 但从 Sequel Pro 它说
无法连接到主机 127.0.0.1,或请求超时。
确保地址正确并且您具有必要的权限,或者尝试增加连接超时(当前为 10 秒)。
MySQL 说:无法加载身份验证插件 'caching_sha2_password': dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found
无法弄清楚我错过了什么
这是因为 Sequel Pro 尚未准备好进行新的用户登录,正如错误所述:没有驱动程序。
基本上您必须手动执行一些操作,但是 - 您的数据库数据不会像下面的解决方案一样被删除
转到 my.cnf 文件并在[mysqld]
部分添加行:
default-authentication-plugin=mysql_native_password
从终端登录到 mysql 服务器:运行mysql -u root -p
,然后在 shell 中执行此命令(将[password]替换为您的实际密码):
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[password]';
从mysql外壳,退出exit
和运行brew services restart mysql
。
应该管用。
非自制软件安装的快速修复:
Apple Logo > System Preferences > MySQL > Initialize Database
,然后输入您的新密码并选择“使用旧密码”
重启后应该就可以连接了。 仅在全新安装时执行此操作,否则您可能会丢失 db 表。
my.cnf 文件位于 Unix/Linux 上的 /etc/my.cnf
TL;DR:Sequel Pro 自 2016 年起就死了。不要因为工具而降级您的数据库。 继续使用替代工具。
2020 年更新:Sequel Pro 正式死亡,但非正式地活着! 您可以在此处找到没有此问题的“每晚”构建(即支持 Mysql 8 身份验证): https : //sequelpro.com/test-builds
2021 年更新:Sequel Ace是一个很好的类似活着的替代品: https : //github.com/Sequel-Ace/Sequel-Ace#installation (感谢 Maciej Kwas 的回答)
这里的所有其他解决方案都建议为您正在使用的工具更改数据库设置(降低安全性,如 MySQL 所宣传的那样)。 这是我不能接受的。
我一直是 Sequel Pro 的忠实粉丝,甚至捐赠了它。 但是,以我所有的热情和爱,如果该工具自 2016 年以来没有任何版本,我很抱歉。 YOLO,我需要继续前进!
我发现的替代方案(来自https://stackoverflow.com/a/55235533/2321594 ,感谢@arcseldon)是DBeaver ,它支持 MySQL 8 的新身份验证(非传统)方法。
附注。 工具方面而非数据库方面的唯一技巧是,当您创建 MySQL 8 连接时,您可能需要转到“驱动程序属性”(稍后可以在“编辑连接”中找到)并将allowPublicKeyRetrieval
的值变为true
。
我需要它来连接到我使用 Docker 创建的 MySQL 容器。 为了让 MySQL 的 IP 对外可见,对于生态系统中的任何其他应用程序(不仅仅是这个工具),您应该在 MySQL 中创建一个新用户,或者在运行时传递-e MYSQL_ROOT_HOST=%
或作为一个 ENV。
~/.my.conf
[mysqld]
default-authentication-plugin=mysql_native_password
mysql -u root -p
登录mysqlALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]';
设置 root 用户密码ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]';
其中[PASSWORD]
是您选择的密码。brew services restart mysql
Sequel Pro 正式死亡,不再支持更新的 MySql 功能。 然而,好消息是它被GitHub和App store上的Sequel Ace所取代。 该应用程序是免费的,看起来像是 Sequel Pro 的官方替代品,因为该帖子是由Sequel Pro的一位合作者制作的。
附言。 我决定将此作为答案发布,因为其他人没有提到现在有最新的 Sequel Pro 替代品
如果您通过 root@127.0.0.1 连接到 MySQL,请确保您也重置其密码!
ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY '[password]';
如果有人遇到此问题并通过.dmg
文件安装了MySQL version > 8
; 从官方链接下载。 在这种情况下,请使用本指南。 我将在下面添加相同的详细信息,以防将来无法使用该链接。
这个问题是因为您使用的是 MySQL 8 中的新功能Strong Password Encryption
,如果您使用.dmg
文件安装 MySQL 8,您可以转到System Preferences > MySQL
,然后单击Initialize Database
输入您的密码并选择第二个选项Use Legacy Password Encryption
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.