我只是尝试使用npm上的@mysql/xdevapi模块来执行一个非常基本的、近乎“helloworld”的操作,以简单地获取我创建的数据库中的行。
const mysqlx = require('@mysql/xdevapi');
const config = {
password: 'agoodpassword!',
user: 'user',
host: 'localhost',
port: 33060,
schema: 'myDatabase'
};
mysqlx
.getSession(config)
.then(session => {
return session
.sql('SELECT * FROM `myTable`;')
.execute();
})
.catch((err)=>{
console.log(err)
})
我想不出比这更简单的方法来看看我是否能使连接器工作,因为我没有成功地将它作为我的项目的一部分。
当我的选项中的关键字“schema”旁边清楚地列出“no database selected”错误时,我仍然会得到它。。。架构和数据库是一样的,如果我回忆正确。。。
我真的不知道怎么了,任何帮助都会很感激的。
关于如何使用这个模块,我引用了这个https://dev.mysql.com/doc/dev/connector-nodejs/8.0/ )
2条答案
按热度按时间vbopmzt11#
在应用任何“黑客”解决方案(如在每个表/列选择中写入模式名称)之前,请重新考虑下一步。查看官方文件,您的问题在这里描述。
我将发布开场白,您可以在文档中看到它们直接解决了您的问题:
新打开的会话没有架构集。建立会话时,没有隐式设置默认模式的概念。可以定义默认模式,但在显式选择之前,会话的当前模式不会设置为默认模式。
bzzcjhmw2#
当前,即使您可以使用连接选项定义默认模式(
myDatabase
在您的示例中),该模式不适用于会话级操作,例如使用.sql()
.你有两个选择来克服这个限制。您可以在查询本身中定义架构:
或者,在会话上下文中显式切换到该特定架构:
免责声明:我是xdevapi node.js连接器负责人dev。