我刚刚从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): 找不到图片
不知道我在想什么
答案 0 :(得分:98)
这是因为Sequel Pro尚未准备好进行新类型的用户登录,因为错误指出:没有驱动程序。非自制安装的快速修复:
Apple Logo > System Preferences > MySQL > Initialize Database
,然后输入新密码并选择“使用旧密码”
重新启动后,您应该可以连接了。只能在全新安装时执行此操作,因为否则可能会丢失数据库表。
基本上,您将必须手动执行一些操作,但是-您的数据库数据不会像上述解决方案一样被删除
转到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文件的更多信息: For homebrew mysql installs, where's my.cnf?
答案 1 :(得分:8)
Sequel Pro is officially dead,并且不再支持新的MySql功能。但是,好消息是它被Sequel Ace和GitHub上可用的App store取代。该应用程序是免费的,看起来像post was made by one of the collaborators of Sequel Pro的Sequel Pro的正式替代品。
Ps。我决定将其发布为答案,因为其他人还没有提到Sequel Pro的最新替代品
答案 2 :(得分:4)
~/.my.conf
:[mysqld]
default-authentication-plugin=mysql_native_password
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]';
设置root用户密码,其中[PASSWORD]
是您选择的密码。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尝试此解决方案
答案 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连接时,您可能需要转到“驱动程序属性”(以后可以在“编辑连接”中找到)并打开allowPublicKeyRetrieval
到true
的值。
我需要它来连接到使用Docker创建的MySQL容器。要使外部可以看到MySQL的IP,对于您的生态系统中的任何其他应用程序(不仅是此工具),您都应该在MySQL中创建一个新用户,或者在运行时或通过-e MYSQL_ROOT_HOST=%
一个ENV。