Sequel Pro和MySQL连接失败

Hat*_*nzō 59 mysql database-connection sequelpro

我刚在Homebrew上安装了mysql

brew install mysql

mysql -V

mysql  Ver 8.0.11 for osx10.13 on x86_64 (Homebrew)
Run Code Online (Sandbox Code Playgroud)

从终端它工作,我可以登录到mysql,但从Sequel Pro它说

在此输入图像描述

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

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

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

无法弄清楚我错过了什么

Mac*_*was 129

这是因为Sequel Pro尚未准备好进行新的用户登录,因为错误表明:没有驱动程序.非自制软件安装的快速修复:

Apple Logo > System Preferences > MySQL > Initialize Database,然后输入新密码并选择"使用旧密码"

重启后你应该可以连接.仅在全新安装时执行此操作,否则您可能会丢失数据库表.

mysql + homebrew

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

  • 转到my.cnf文件并在部分[mysqld]添加行:

    default-authentication-plugin=mysql_native_password

  • 从终端登录mysql服务器:运行mysql -u root -p,然后在shell中执行以下命令:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[password]';

  • 用mysql shell退出exit并运行brew services restart mysql.

应该管用.


my.cnf中

有关my.cnf文件的更多信息: 对于homebrew mysql installs,my.cnf在哪里?

  • 我没有使用密码,所以我使用了`ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';` - 这对我有用 (9认同)
  • 这对于使用`/ usr/local/etc/my.cnf`的新的`brew install mysql`非常有用 (8认同)
  • 我在系统偏好设置中找不到MySQL (5认同)
  • 感谢解释,但在我的机器上找不到 `my.cnf` 文件(macOS High Sierra 10.13.5) (2认同)
  • 如果没有这样的文件,你将不得不创建一个:请看看这个线程:/sf/ask/558174921/ (2认同)

Ili*_*rim 14

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


Ale*_* K. 13

Sequel Pro 正式死亡,不再支持更新的 MySql 功能。然而,好消息是它被GitHubApp store上的Sequel Ace所取代。该应用程序是免费的,看起来像是 Sequel Pro 的官方替代品,因为该帖子是由Sequel Pro的一位合作者制作的

附言。我决定将此作为答案发布,因为其他人没有提到现在有最新的 Sequel Pro 替代品


Aid*_*din 11

TL; DR:Sequel Pro自2016年以来就死了。不要因为工具而降级数据库。转到其他工具。


此处所有其他解决方案均建议您针对所使用的工具更改数据库设置(使其安全性降低,如MySQL所宣传)。这对我来说是不可接受的。

我一直是Sequel Pro的忠实拥护者,甚至捐赠给它。但是,以我的全部热情和爱心,如果该工具自2016年以来未发布任何版本,我感到抱歉。YOLO,我需要继续前进!

我发现的替代方法(来自/sf/answers/3866487341/,感谢@arcseldon)是DBeaver,它支持MySQL 8的新认证(非传统)方法。

PS。在工具方面而不是数据库方面的唯一技巧是在创建MySQL 8连接时,您可能需要转到“驱动程序属性”(可以在“编辑连接”中找到)并将其值设置allowPublicKeyRetrievaltrue

我需要它来连接到使用Docker创建的MySQL容器。为了使MySQL的IP对外部可见,对于您的生态系统中的任何其他应用程序(不仅仅是此工具),您都应该在MySQL中创建一个新用户,或者传入-e MYSQL_ROOT_HOST=%运行时或作为ENV。

  • 请不要将其视为个人@MaciejKwas。尽管在这里提供了更多解释,我很感激,但我仍然坚持我的投票。三个主要原因是:1) 在现代软件开发中不建议在 dev/prod 之间保持不同的设置。事实上,它是 https://12factor.net/dev-prod-parity 的 X 因子。2)人们也可以使用这些工具来检查产品。您可以创建一个 ssh-tunnel/proxy 并通过 GUI 工具访问您的 prod 数据库。在这种情况下,不能选择降级 DB 身份验证。3)不适应变化和升级是我个人不重视的事情。 (6认同)

Xen*_*eno 5

如果您通过 root@127.0.0.1 连接到 MySQL,请确保您也重置其密码!

ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY '[password]';


小智 5

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

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

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

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

请尝试这个解决方案

在此输入图像描述