我已经创建了一个谷歌云mySql实例,我想用它来存储一些温室效应信息。我已经设置了实例,并且还将我的NodeJs程序连接到该实例。我还使用以下命令运行了mysql云代理
.\cloud_sql_proxy.exe -instances=my-instance-name=tcp:3306下面的代码用于连接到数据库。
var dbConnected = false;
const config = ConnectionOptions = {
host: '127.0.0.1',
user: 'Username',
password: 'Password',
database: 'GreehouseInfo',
dialect: 'mysql',
synchronize: true,
}
const connection = mysql.createConnection(config);
async function ConnectToDatabse() {
await connection.connect((err) => {
if (err) throw err;
console.log('Connected!');
dbConnected = true;
});
}现在,我还使用以下查询动态创建了一些表,代码如下所示#
async function CreateTables() {
return new Promise(resolve => {
if (dbConnected){
var sql = "CREATE TABLE IF NOT EXISTS Users(User_ID INT AUTO_INCREMENT PRIMARY KEY,UserName VARCHAR(255) NOT NULL,Password VARCHAR(255))";
connection.query(sql, function (err, result) {
console.log(result)
if (err) console.log(err);
});
}
console.log("Table created");
resolve();
});
}当我启动节点服务并表示表已创建时,查询没有抛出任何错误,当我使用命令行和以下命令mysql -u RichardTeunen -p --host 127.0.0.1 --port 3306连接到DB实例时,我可以使用以下命令show tables;来查看我的表,然后我就可以看到我刚刚创建的表用户

我遇到的问题是当我尝试在表上执行任何查询时。我创建了以下函数来执行查询。
async function PerformQuery(querytext) {
return new Promise(resolve => {
if (dbConnected){
var sql = querytext;
connection.query(sql, function (err, result) {
if (err) console.log(err.message);
});
}
console.log("Query performed");
resolve();
});
}我对这个查询尝试了Select和Insert语句,我总是得到这样的错误
The table GreehouseInfo.USERS does not exist但是,正如我刚才所展示的那样,该表确实存在,所以我不确定为什么会发生这种情况。我已经了解到,如果您将设备备份到另一个位置,然后您应该随身携带一些文件,则会发生这种情况,但我不确定必须将哪些数据库文件复制到我的本地设备才能使连接在此设备上有效。任何建议都将不胜感激。
https://stackoverflow.com/questions/64306343
复制相似问题