MySQL 错误 2049 : Authentication protocol error

标签 mysql

我在尝试从其他服务器远程连接到我的数据库服务器时遇到问题。 当我尝试建立连接时收到以下错误:

错误 2049 (HY000):连接使用旧的(4.1.1 之前的)身份验证协议(protocol)引用 使用(启用客户端选项'secure_auth')

我检查了数据库服务器上的secure_auth选项,它是关闭的,而且我的客户端似乎有这个选项激活正如消息所说。 有什么方法可以通过仅修改数据库服务器上的设置来解决这个问题吗?

最佳答案

我遇到了完全相同的问题,这最终对我有用:

我卸载了我的本地 mysql 客户端(我运行的是 MySQL 5.6)并安装了 MySQL 5.5,然后重新启动了我的计算机。

我在我的 Mac 上使用 Homebrew,所以我这样做了:

brew uninstall mysql
brew tap homebrew/versions
brew install mysql55
brew link --force mysql55
ln -sfv /usr/local/opt/mysql55/*.plist ~/Library/LaunchAgents
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql55.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql55.plist

显然,我的 5.6 客户端不想使用我公司服务器使用的安全性较低的密码,即使我已尝试在本地关闭 secure_auth。 MySQL 5.5 不会提示密码不够安全,但 5.6 会提示。

关于MySQL 错误 2049 : Authentication protocol error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18815242/

相关文章:

php - 使用存储在数组中的 php 值的总和更新 MySQL 表列

javascript - 如何正确格式化 JSON

php - codeigniter mysql停止连续第三次插入

php - MYSQL 内部连接两个表相同的列名不同的值

php - Facebook 注册插件 - 异步验证(电子邮件)

PHP面向对象的foreach循环

php - CKFinder 的几个警告

MySQL查询表过滤问题

php - 我应该使用什么数据类型来为我的应用程序在 MySQL 中存储 time()?

MySQL ORDER BY COUNT()?