【问题标题】:Cloud SQl, MySQL database Tables not found when created from NodeJsCloud SQl,从NodeJs创建时找不到MySQL数据库表
【发布时间】:2021-01-26 02:05:57
【问题描述】:

我创建了一个谷歌云 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 然后我可以使用以下命令 显示表格; 查看我的表,然后我可以看到我刚刚创建的表用户

我遇到的问题是当我尝试对表执行任何查询时。我创建了以下函数来为我执行查询。

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

但是,正如我刚刚展示的那样,表格确实存在,所以我不确定为什么会发生这种情况。我已经读过,如果您将设备备份到另一个位置,然后您应该随身携带一些文件,就会发生这种情况,但我不确定我可能必须将哪些数据库文件复制到我的本地设备以使连接在此设备上有效。任何建议将不胜感激。

【问题讨论】:

    标签: mysql node.js google-cloud-platform google-cloud-sql cloud-sql-proxy


    【解决方案1】:

    据我所知,您的表是User(请参阅您的创建脚本)而不是用户(请参阅您的选择错误)。 Linux env 上的大小写敏感问题 ;)

    docs

    参见示例here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-31
      相关资源
      最近更新 更多