Sequel Pro和MySQL连接失败


97

我刚刚从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):找不到映像

无法弄清楚我在想什么

Answers:


187

这是因为Sequel Pro尚未准备好进行新的用户登录,因为错误指出:没有驱动程序。

MySQL +自制

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

  • 转到my.cnf文件,然后在部分中[mysqld]添加以下行:

    default-authentication-plugin=mysql_native_password

  • 从终端登录到mysql服务器:run mysql -u root -p,然后在shell内执行此命令(用您的实际密码替换[password]):

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

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

应该管用。

快速修复(破坏性方法)

非自制安装的快速修复:

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

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


my.cnf

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


备择方案

对于仍在为Sequel Pro问题而苦苦挣扎的人:Sequel Pro是一个很棒的产品,但是由于存在大量未解决的问题,并且上一版的发布日期是2016年,所以寻找一些替代方案是一个好主意。SequelPro的一个分支叫做SequelAce,看起来很稳定并且是最新的,它具有相似的功能,相似的外观和感觉,但同时又没有旧的Sequel Pro问题

14
我在“系统偏好设置”中找不到MySQL
HattoriHanzō18年

2
感谢您的解释,但无法my.cnf在我的机器上找到文件(macOS High Sierra 10.13.5)
HattoriHanzō18年

2
如果没有这样的文件,你必须创建一个:请看看这个线程:stackoverflow.com/questions/7973927/...
马切伊Kwas

14
这在新鲜brew install mysql使用时效果很好/usr/local/etc/my.cnf
mintwhip

5
我没有使用密码,所以我用ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';-这为我工作
文森特·唐

37

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

2020年更新:Sequel Pro正式死亡,但非正式地还活着! 您可以在以下位置找到不存在此问题的“每晚”版本(即,支持Mysql 8 auth):https : //sequelpro.com/test-builds


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

我一直是Sequel Pro的忠实拥护者,甚至捐赠给它。但是,以我的全部热情和爱心,如果该工具自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。


我相信@Aidin您之所以给我下票是因为我的回答不能解决OP问题。这只是本地开发和本地设置-那么有什么意义呢?我是否真的必须仅因为您这样说就离开我熟悉且喜欢使用的软件?
Maciej Kwas,

5
请不要把它当作个人@MaciejKwas。尽管在此提供了更多解释,我对此表示赞赏,但我仍然支持我的投票。三个主要原因是:1)在现代软件开发中,不建议在dev / prod之间维持不同的设置。实际上,它是12factor.net/dev-prod-parity的X因子。2)人们也可以使用这些工具来检查产品。您可以创建ssh-tunnel / proxy并通过GUI工具访问产品数据库。在这种情况下,降级数据库身份验证不是一种选择。3)我个人不认为不适应变化和升级。

1
我回来到MySQL项目,我还没有在一本地运行多年的B / C它一直稳如磐石,我很伤心地发现,续集亲死:(
鲶鱼

另外,在DBeaver中选择MySQL +8驱动程序,因为有多个驱动程序可供选择。在驱动程序属性中,将allowPublicKeyRetrieval设置为true并保存。
Peheje

18
  1. 假设您没有mysql配置,则将以下内容回显到~/.my.conf
[mysqld]
default-authentication-plugin=mysql_native_password
  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

10

Sequel Pro正式死亡,不再支持新的MySql功能。但是,好消息是它已被Sequel Ace取代,该版本可在GitHubApp store找到。该应用程序是免费的,并且看起来像Sequel Pro的官方替代品,因为该帖子是由Sequel Pro的合作者之一发布的

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


感谢您的消息,非常感谢。
HattoriHanzō20年

最后!等待了一段时间。
乔尼

6

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

ALTER USER'root'@'127.0.0.1'用mysql_native_password标识为'[password]';


我得到:ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 50, found 49. Created with MySQL 80012, now running 80013. Please use mysql_upgrade to fix this error.
Chance Smith,

在终端上尝试: mysql_upgrade --force -uroot -p
Xeno

mysql_upgrade现在已被弃用,将无法使用,请改用mysqld --upgrade = FORCE。
ilovecookiez19


1

它为我工作。如果出现此错误:

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

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

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

请尝试这个解决方案

在此处输入图片说明


像魅力一样工作。
吉米·阿达罗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.