完整的错误消息:错误 1045 (28000):无法加载插件缓存_sha2_password:═x ershfhe sha2_password.Library path is 'C:/Program Files (x86)/MySQL/lib/plugin/caching_sha2_password.dll'
尝试通过 XAMPP 运行 mysql -u root 时未加载某些模块。
我还在我的 PC 上安装了 MySQL WORKBENCH,并且已经创建了一个服务器(我不确定它是否是这样拼写的,我希望意思很清楚)
我是否正确理解应该尝试以某种方式组合两个子项,因为它们会发生冲突。还是只有“服务器”。网上有很多解决这个问题的方法,但是都是和MySQL相关的,不知道怎么适配我的版本。
我仍然设法解决了这个问题,并且像往常一样,解决方案浮出水面。无论我如何更改 XAMPP 中的配置,基础仍然是 3306,它是在 XAMPP MYSQL 5.7 中的 mysql 工作台中“启动”的,它有 MySQL 8.0 版(更多内容见下文)。解决问题的方法是从端口 3307 开始:
mysql.exe -u root -P 3307之后,身份验证插件停止冲突。
根据我的假设,它是这样的: properties.ini 中有一行
mysql_arguments = -u root -P 3306,我将其更改为mysql_arguments = -u root -P 3307. 之后,不知为何,在控制台中,调用命令时,mysql.exe -u root -Pmysql仍然连接到3306端口,而该端口又被MySQL WorkBench占用,这就是为什么它引用了一个我无法理解的目录(它不存在),但是因为 MySQL 5.7 安装在 XAMPP 中,所以这个版本使用了“旧”身份验证插件。尽管更改 properties.ini 文件并没有在启动 mysql.exe 时产生任何结果,但它给了我可以将端口作为参数传递的想法。因此,我输入了命令mysql.exe -u root -P 3307,它通过更改配置文件和 MySQL 设置连接到我之前在 XAMPP 本身中创建的端口。以下帮助了我。该方法的本质是将认证方式从sha2改为之前的方式。您只需要更改身份验证方法即可。打开MySQL Installer-Community(如果安装的不是Community版本,而是另外一个,那么最后一个字可能就是这个版本的名字,比如Enterprise)。在 MySQL 服务器对面,单击重新配置。在出现的窗口中,单击下一步按钮,直到到达身份验证方法选项卡。在此选项卡中,选择 Use Legacy Authentication Method (Retain MySQL 5.x Compability)。点击下一步。输入 root 用户的密码。单击下一步而不更改任何内容。在最后一个选项卡中,单击执行以保存更改。