带有node.js的MySql xdevapi:“服务器连接未使用X协议”

时间:2018-05-09 13:35:04

标签: mysql node.js

我在Linux上安装了MySql 8

~$ mysql --version
mysql  Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)

我执行了所有基本配置(创建了一个模式,一个用户具有该模式和一些表的授权)。我尝试在node.js中使用xdevapi来执行连接,这只是一个简单的测试。

const mysqlx = require('@mysql/xdevapi');

const dbCfg = {
    "host": "127.0.0.1",
    "port": 3306,
    "password": "xxxxxxxxx",
    "user": "someuser",
    "schema": "someschema"
};

mysqlx.getSession(dbCfg).then(session => {
    console.log("this is the session! ", session);
});

我收到以下错误:

“错误:服务器连接未使用X协议。确保您         连接到正确的端口并使用MySQL 5.7.12(或更高版本)服务器intance“

如果我谷歌搜索“服务器连接没有使用X协议”,我只能获得一个结果!到连接器的源代码(https://dev.mysql.com/doc/dev/connector-nodejs/8.0/lib_Protocol_Client.js.html)。

如果我尝试通过mysqlsh连接相同的参数,一切正常。

如果我运行查询“show plugins”,那么mysqlx插件就在那里:

| ngram                      | ACTIVE   | FTPARSER           | NULL    | GPL     |
| mysqlx                     | ACTIVE   | DAEMON             | NULL    | GPL     |
| mysqlx_cache_cleaner       | ACTIVE   | AUDIT              | NULL    | GPL     |

所以一切似乎都没问题

有任何建议/帮助吗?

提前致谢!

1 个答案:

答案 0 :(得分:1)

您正在连接错误的端口。 X DevAPI由服务器上的X协议和X插件支持,默认情况下,端口33060可用。