Man*_*ani 3 mysql node.js express
我正在尝试使用以下代码连接到 MySQL 数据库。
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'pass',
database : 'my_db',
insecureAuth : true
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});
connection.end();
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
错误:ER_NOT_SUPPORTED_AUTH_MODE:客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端
我在本地安装了 MySQL-installer-community-8.0.11.0。
我需要安装任何其他连接器才能连接到数据库吗?
我正在使用https://hub.docker.com/r/mysql/mysql-server/
在文档中,据说
MYSQL_ONETIME_PASSWORD
:当该变量为true时(这是它的默认状态,除非MYSQL_ROOT_PASSWORD
设置或被MYSQL_ALLOW_EMPTY_PASSWORD
设置为true),root用户的密码被设置为过期,必须更改后MySQL才能正常使用。仅 MySQL 5.6 及更高版本支持此变量。
尝试设置MYSQL_ROOT_PASSWORD
您的 docker 环境。您可能还需要更改用户的身份验证模式。
> mysql -u root -p
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
Run Code Online (Sandbox Code Playgroud)
为我工作。
编辑:检查设置了什么身份验证:
SELECT user, plugin FROM mysql.user WHERE user = 'username';
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
13161 次 |
最近记录: |