2
votes

I'm having a problem while trying to remotely connect to my database server from my other server. I receive the following error when i try to make a connection:

ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol ref used (client option 'secure_auth' enabled)

I've checked the secure_auth option on the database server, and it is off, and my client seems to have this option activated as the message says. Is there any way to fix this by only modifying the settings on the database server?

2

2 Answers

1
votes

I was having this EXACT same problem, and this finally worked for me:

I uninstalled my local mysql client (I was running MySQL 5.6) and installed MySQL 5.5, and then restarted my computer.

I'm using Homebrew on my Mac, so I did this:

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

Apparently my 5.6 client didn't want to use the less secure passwords that my company's servers were using, even though I had tried to turn off secure_auth locally. MySQL 5.5 doesn't complain about passwords being less secure, but 5.6 does.

0
votes

This is happening because you have user accounts with passwords that used the ancient old hashing algorithm. Create a new user with new-style hash, and now use that new user with no trouble. Check here the related information