Home >Database >Mysql Tutorial >How to Fix the 'ER_NOT_SUPPORTED_AUTH_MODE' Error When Connecting Node.js to MySQL?

How to Fix the 'ER_NOT_SUPPORTED_AUTH_MODE' Error When Connecting Node.js to MySQL?

Susan Sarandon
Susan SarandonOriginal
2024-11-17 15:20:02520browse

How to Fix the

Resolving ER_NOT_SUPPORTED_AUTH_MODE Error when Connecting Node.js to MySQL

When connecting a Node.js server to a MySQL database, you may encounter the error "ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server." This issue arises when the client and server are using different authentication methods.

Issue Analysis

The error message suggests that the MySQL server is configured to use a newer authentication protocol that is not supported by the Node.js client. This can occur if the Node.js client version is outdated.

Solution

To resolve this issue, upgrade the Node.js client to support the newer authentication protocol used by the MySQL server. For MySQL v8.0, follow these steps:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;

Remember to replace 'root' and 'password' with the actual username and desired password. These changes need to be applied to the user that is trying to connect.

Code Snippet (Updated)

After updating the MySQL configuration and user privileges, the Node.js connection snippet should be updated to use the mysql2 library, which supports the newer authentication protocol:

    const mysql = require('mysql2');

    const connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'root',
        password : 'password',
        database : 'foobarDb'
    });

By implementing these steps, you can successfully establish a connection between your Node.js server and MySQL database, eliminating the "ER_NOT_SUPPORTED_AUTH_MODE" error.

The above is the detailed content of How to Fix the 'ER_NOT_SUPPORTED_AUTH_MODE' Error When Connecting Node.js to MySQL?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn