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

NodeJS xdevapi - Creating Connection to MySQL Database

我一直在使用在这里找到的官方 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!!');
});

不幸的是,此代码会产生与上述相同的错误。

我自己试了一下,也是同样的错误,因为你用错了端口。可能是你更改了默认端口,但默认端口是:3306 而不是 33060 虽然我必须使用端口 33060 而我的端口是 3306.

X-protocal 要求您将您的端口乘以 10 我在这里看到:https://dev.mysql.com/doc/mysql-port-reference/en/mysql-ports-reference-tables.html所以如果你原来的端口是33060我猜应该是330600.

你可以试试这个命令SHOW VARIABLES LIKE 'mysqlx_port';