如何在 Windows 上使用 Node JS 访问 MariaDB
Posted
技术标签:
【中文标题】如何在 Windows 上使用 Node JS 访问 MariaDB【英文标题】:How to acces MariaDB with NodeJS on Windows 【发布时间】:2019-10-20 19:05:00 【问题描述】:我刚刚下载了适用于 Windows 的 MariaDB 10.3,创建了一个数据库并尝试使用 mysql
库从 NodeJS 服务器进行连接。
var mysql = require('mysql');
var con = mysql.createConnection(
host: "localhost",
user: "root",
password: "MariaDBPass",
database:'DB_NAME',
);
con.connect(function(err)
if (err) throw err;
console.log("Connected!");
con.query(sql, function (err, result)
if (err) throw err;
console.log("Result: " + result);
);
);
我在 Ubuntu 上尝试过,它可以工作,但在 windows 上它会引发非 sql 错误:
Client does not support authentication protocol requested by server; consider upgrading MariaDB client
我很生气,这可能是 MySQL 8.0 和库之间的不兼容 (mysql
)。
我已经尝试将用户更改如下:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
但它说
有一个 SQL 语法错误
关于如何解决这个问题的任何想法?
【问题讨论】:
降级到什么级别? 【参考方案1】:我不知道这会有多大帮助,但使用以下设置:
MariaDB 10.3 (x64) Windows 10 专业版(内部版本 17763) mysql 模块 v2.16.0. Node.js v10.15.1以下代码按预期工作:
var mysql = require('mysql');
var con = mysql.createConnection(
host: "localhost",
user: "some_user",
password: "some_password",
database: 'testdb'
);
let sql = "select * from test_table";
con.connect(function(err)
if (err) throw err;
console.log("Connected!");
con.query(sql, function (err, result)
if (err) throw err;
console.log("Result: " + JSON.stringify(result));
);
);
我得到如下输出:
["id":1,"name":"Mike Smith","id":2,"name":"Joe Brown"]
创建我做的用户(使用 MariaDB mysql.exe,使用 root 用户):
use testdb;
create user 'some_user'@'localhost' identified by 'some_password';
grant all privileges on testdb.* to 'some_user'@'localhost';
这可能有点宽松,但可以用于测试连接。
我也可以连接root用户。
如果你想设置root用户密码,试试:
use mysql;
update user set password=PASSWORD('password') where user='root'and host='localhost';
flush privileges;
我创建了一个简单的数据库“testdb”和表“test_table”,其中包含几行用于查询。
如果可以的话,我建议也许升级你的 mysql 模块版本。也可以看看 Node.js 版本。
【讨论】:
我做了和你一样的设置,但仍然是同样的错误。您是否对用户进行了一些更改?你也用过root用户吗? 我授予用户访问相关数据库的权限。差不多就是这样! 我会非常感谢它!非常感谢 奇怪,我将端口从默认值更改为另一个值,现在它工作正常。 我认为 Linux 的 ubuntu 终端有问题,因为我尝试使用 apt 从 repos 下载 mariadb以上是关于如何在 Windows 上使用 Node JS 访问 MariaDB的主要内容,如果未能解决你的问题,请参考以下文章