dbwebb-se / databas

Course repo for database course (dbw).
Other
4 stars 2 forks source link

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client #22

Open mosbth opened 3 years ago

mosbth commented 3 years ago

Du har skrivit ett JavaScript program och försöker koppla dig till MySQL. Du får ett fel.

Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

Lösning finns i följande tråd. https://dbwebb.se/t/8279

sigridjonsson commented 3 years ago

Jag får upp samma felmeddelande men lyckas ändå inte lösa problemet. Här är den informationen jag har. När jag skriver mysql --version får jag: mysql Ver 8.0.23 for osx10.15 on x86_64 (Homebrew)

När jag skriver "SELECT Host, User, plugin FROM user;" får jag:

Skärmavbild 2021-02-02 kl  14 04 33

När jag skriver "SHOW VARIABLES LIKE 'validate_password%'" får jag:

Skärmavbild 2021-02-02 kl  14 06 42
NiklasAurora commented 3 years ago

I ovanstående problem så installerades MySQL via brew install mysql. Under mysql_secure_installation valde vi att sätta krav på lösenord, vilket gör att modulen validate_password installeras som gör att användarens lösenord hashas med caching_sha2_password istället för mysql_native_password, även om man skapar användaren med följande:

CREATE USER IF NOT EXISTS 'user'@'%'
    IDENTIFIED WITH mysql_native_password
    BY 'pass'
;

Den lösningen vi valde att göra var att ta bort validate_password modulen, genom att köra följande kommando i MySQL via terminalen (som root):

UNINSTALL COMPONENT 'file://component_validate_password';

Efter detta så behöver man skapa om sin 'user'@'%' användare så bör man få mysql_native_password som plugin ifall man kör

USE mysql;
SELECT Host, User, plugin FROM user;
+-----------+--------+-----------------------+
| Host      | User   | plugin                |
+-----------+--------+-----------------------+
| localhost | root   | mysql_native_password |
| %         | user   | mysql_native_password |
+-----------+--------+-----------------------+