繁体   English   中英

Sequel Pro 和 MySQL 连接失败

[英]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 尚未准备好进行新的用户登录,正如错误所述:没有驱动程序。

mysql + 自制软件

基本上您必须手动执行一些操作,但是 - 您的数据库数据不会像下面的解决方案一样被删除

  • 转到 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 表。


我的.cnf

my.cnf 文件位于 Unix/Linux 上的 /etc/my.cnf


备择方案

对于那些仍在为 Sequel Pro 问题苦苦挣扎的人来说:Sequel Pro 是一款很棒的产品,但是有大量未解决的问题,并且最后一次发布的日期是 2016 年,也许寻找一些替代品是个好主意。 SequelPro 有一个分支叫做 SequelAce,它看起来非常稳定和最新,它保持相似的功能,相似的外观和感觉,但同时它没有旧的 Sequel Pro 问题

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。

  1. 假设您没有mysql配置,将以下内容回显到~/.my.conf
[mysqld]
default-authentication-plugin=mysql_native_password
  1. 使用mysql -u root -p登录mysql
  2. 使用ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]';设置 root 用户密码ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]'; 其中[PASSWORD]是您选择的密码。
  3. 重启MySQL与例如brew services restart mysql

Sequel Pro 正式死亡,不再支持更新的 MySql 功能。 然而,好消息是它被GitHubApp 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]';

它对我有用。 如果您收到此错误:

无法连接到主机 127.0.0.1,或请求超时。

确保地址正确并且您具有必要的权限,或者尝试增加连接超时(当前为 10 秒)。

MySQL 说:无法加载身份验证插件 'caching_sha2_password': dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2):

请试试这个解决方案

在此处输入图片说明

如果有人遇到此问题并通过.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM