我在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 |
所以一切似乎都没问题
有任何建议/帮助吗?
提前致谢!
答案 0 :(得分:1)
您正在连接错误的端口。 X DevAPI由服务器上的X协议和X插件支持,默认情况下,端口33060可用。