Sequel Pro和MySQL连接失败

时间:2018-07-04 18:49:59

标签: mysql database-connection sequelpro

我刚刚从Homebrew在Mac上安装了mysql

brew install mysql

mysql -V

mysql  Ver 8.0.11 for osx10.13 on x86_64 (Homebrew)

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

enter image description here

  

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

     

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

     

MySQL表示:身份验证插件“ caching_sha2_password”不能为   已加载:dlopen(/usr/local/lib/plugin/caching_sha2_password.so,2):   找不到图片

不知道我在想什么

7 个答案:

答案 0 :(得分:98)

这是因为Sequel Pro尚未准备好进行新类型的用户登录,因为错误指出:没有驱动程序。非自制安装的快速修复:

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

重新启动后,您应该可以连接了。只能在全新安装时执行此操作,因为否则可能会丢失数据库表。

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]';

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

应该工作。


my.cnf

有关my.cnf文件的更多信息: For homebrew mysql installs, where's my.cnf?

答案 1 :(得分:8)

Sequel Pro is officially dead,并且不再支持新的MySql功能。但是,好消息是它被Sequel AceGitHub上可用的App store取代。该应用程序是免费的,看起来像post was made by one of the collaborators of Sequel Pro的Sequel Pro的正式替代品。

Ps。我决定将其发布为答案,因为其他人还没有提到Sequel Pro的最新替代品

答案 2 :(得分:4)

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

答案 3 :(得分:1)

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

使用mysql_native_password通过'[password]'标识ALTER USER'root'@'127.0.0.1';

答案 4 :(得分:1)

如果有人遇到此问题并通过MySQL version >8安装了.dmg,请从官方链接下载。在这种情况下,请使用this guideline

答案 5 :(得分:1)

对我有用。如果出现此错误:

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

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

MySQL表示:身份验证插件“ caching_sha2_password”不能为 已加载:dlopen(/usr/local/lib/plugin/caching_sha2_password.so,2):

Plz尝试此解决方案

enter image description here

答案 6 :(得分:0)

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


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

我一直是Sequel Pro的忠实拥护者,甚至捐赠给它。但是,以我所有的热情和爱心,对于该工具没有任何发布since 2016,我们深感抱歉。 YOLO,我需要继续前进!

我发现的替代方法(来自https://stackoverflow.com/a/55235533/2321594,感谢@arcseldon)是DBeaver,它支持MySQL 8的新认证(非传统)方法。

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

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