NodeJS xdevapi-创建与MySQL数据库的连接

时间:2020-04-24 03:21:03

标签: mysql node.js mysql-connector

我一直在使用官方的MySQL NPM软件包:https://www.npmjs.com/package/@mysql/xdevapi

但是,我似乎无法与服务器建立连接。这是我收到的当前错误消息:

Error: The server connection is not using the X Protocol.
Make sure you are connecting to the correct port and using a MySQL 5.7.12 (or higher) server intance.

以下是生成该问题的代码:

const db = mysqlx.getSession('root@localhost:33060/schemaname').then(session => {
    console.log('SESSION STARTED!!');
});

这只是一个没有密码的测试数据库,因此我认为密码不是问题。另外,我确保使用的端口正确,并且MySQL版本是8.x.x,所以我认为这不是问题。我使用应用程序Dbngin创建了一个数据库,并验证了可以通过在终端上运行以下命令来运行该数据库:mysql -u root -h 127.0.0.1 --port=33060 -p。我也在Mac上运行它。

更新: 我也尝试过传递一个配置对象而没有太多运气:

const config = {
    user: 'root',
    password: '',
    host: 'localhost',
    port: 33060,
    schema: 'schemaname'
};

const db = mysqlx.getSession(config).then(session => {
    console.log('SESSION STARTED!!');
});

不幸的是,这段代码在上面产生了相同的错误。

1 个答案:

答案 0 :(得分:2)

我自己尝试了一下,并得到了相同的错误,因为您使用的端口错误。可能是您更改了默认端口,但是默认端口是:3306而不是33060,尽管我必须在端口3306时使用端口33060。

X协议要求您将端口乘以10 。我在这里看到:https://dev.mysql.com/doc/mysql-port-reference/en/mysql-ports-reference-tables.html因此,如果您的原始端口是33060,我想应该是330600。

您可以尝试使用此命令SHOW VARIABLES LIKE 'mysqlx_port';