我只是想使用NPM上的@ mysql / xdevapi模块来做一个非常基本的“ Hello World”,以简单地获取我已建立的数据库中的行。
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”旁边清楚列出了“未选择数据库”错误时,我仍然会收到错误消息。如果我正确地调用,则Schema和Database是同一回事...
我真的不知道出什么问题了,我们将不胜感激。
我在此参考如何使用此模块(https://dev.mysql.com/doc/dev/connector-nodejs/8.0/)
答案 0 :(得分:0)
当前,即使您能够使用连接选项(示例中的myDatabase
来定义默认架构,该架构也不适合会话级操作,例如使用{{1 }}。
您有两个选择可以克服此限制。您可以在查询本身中定义架构:
.sql()
或者,您在会话上下文中明确切换到该特定模式:
return session.sql('SELECT * FROM `myDatabase`.`myTable`').execute()
免责声明:我是xdevapi Node.js连接器主要开发人员。
答案 1 :(得分:-1)
请在应用任何“ hack”解决方案之前重新考虑下一步,例如在每个表/列选择中写入模式名称。查看官方文档,您的问题在HERE中有所描述。
我将发布开场白,您可以在文档中看到它们直接解决了您的问题:
新打开的会话没有架构设置。建立会话时,没有隐式设置默认架构的概念。可以定义默认模式,但是在被明确选择之前,会话的当前模式未设置为默认模式。