Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MySQL Error: Authentication plugin 'caching_sha2_password' cannot be loaded

I just installed MySQL Ver 14.14 Distrib 5.7.22 with Homebrew on my macOS v10.13.4.
I ran the command:
brew install mysql

After the installation completed, as directed by Homebrew, I ran the command:
mysql_secure_installation
and was returned the error: Error: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/Cellar/mysql/5.7.22/lib/plugin/caching_sha2_password.so, 2): image not found

I tried a few things like changing default_authentication_plugin to mysql_native_password in the my.cnf file but it still throws the same error.

Next I tried running:
mysql_upgrade -u root
and I was thrown the same error again mysql_upgrade: Got error: 2059: Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(/usr/local/Cellar/mysql/5.7.22/lib/plugin/caching_sha2_password.so, 2): image not found while connecting to the MySQL server Upgrade process encountered error and will not continue.

Any help is appreciated.

like image 690
Faheem Hassan Zunjani Avatar asked Apr 20 '18 16:04

Faheem Hassan Zunjani


People also ask

What is caching_sha2_password MySQL?

In MySQL 8.0, caching_sha2_password is the default authentication plugin rather than mysql_native_password . For information about the implications of this change for server operation and compatibility of the server with clients and connectors, see caching_sha2_password as the Preferred Authentication Plugin. Important.

What is MySQL native password?

MySQL client programs use mysql_native_password by default.


1 Answers

So, I found the running process of mysqld by sudo lsof -i tcp:3306 then I killed it using sudo kill -9 <PID>.

After this I tried mysql_secure_installation again, but ran into a new error :

Error: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (61)

After trying a few fixes for getting mysql.sock to work, I started the MySQL server with sudo mysql.server start then went ahead with mysql_secure_installation to set password for the root user.

This worked for me finally.

Note: Homebrew asks you to first do mysql_secure_installation before starting the MySQL server for the first time but that just made me run into endless loop of errors.

like image 128
Faheem Hassan Zunjani Avatar answered Sep 18 '22 13:09

Faheem Hassan Zunjani