我刚在Homebrew上安装了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):找不到图片
无法弄清楚我错过了什么
这是因为Sequel Pro尚未准备好进行新的用户登录,因为错误表明:没有驱动程序。非自制软件安装的快速修复:
Apple Logo > System Preferences > MySQL > Initialize Database
,然后输入新密码并选择“使用旧密码”
重启后你应该可以连接。仅在全新安装时执行此操作,否则您可能会丢失数据库表。
基本上,您必须手动执行某些操作,但是您的数据库数据不会像上面的解决方案那样被删除
[mysqld]
部分添加行:
default-authentication-plugin=mysql_native_password
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?
~/.my.conf
:[mysqld]
default-authentication-plugin=mysql_native_password
mysql -u root -p
登录mysqlALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '[PASSWORD]';
设置root用户密码,其中[PASSWORD]
是您选择的密码。brew services restart mysql
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中创建一个新用户,或者在运行时或作为ENV传递-e MYSQL_ROOT_HOST=%
。
如果您通过[email protected]连接到MySQL,请确保您也重置其密码!
ALTER USER'root'@'127.0.0.1'用mysql_native_password识别BY'[密码]';