Mysql 如何将节点应用程序重新连接到新的Google Cloud SQL数据库?

Mysql 如何将节点应用程序重新连接到新的Google Cloud SQL数据库?,mysql,node.js,google-cloud-platform,Mysql,Node.js,Google Cloud Platform,react/node应用程序的开发版本位于gcp项目中。这个项目是由离开的其他人创建的,所以我的理解有限。我需要将此应用程序准备好进行生产 我把代码复制到一个新的项目中,用于生产。在server.js文件中,我更改了主机、密码和数据库,以匹配我创建的新项目中的数据库。 当do npm在客户端内部运行build和do gcloud app deploy api/app.yaml和client/app.yaml时,部署的应用程序仍然引用开发应用程序中的原始数据库,尽管指定了新主机、密码和数据库 我猜

react/node应用程序的开发版本位于gcp项目中。这个项目是由离开的其他人创建的,所以我的理解有限。我需要将此应用程序准备好进行生产

我把代码复制到一个新的项目中,用于生产。在server.js文件中,我更改了主机、密码和数据库,以匹配我创建的新项目中的数据库。 当do npm在客户端内部运行build和do gcloud app deploy api/app.yaml和client/app.yaml时,部署的应用程序仍然引用开发应用程序中的原始数据库,尽管指定了新主机、密码和数据库

我猜问题是我最初使用dev数据库选项部署它,当我切换到prod数据库选项时,它无法连接并恢复到以前的连接

如果这是真的,我如何才能看到导致此连接失败的原因?是否需要在数据库中设置其他设置以准备连接。我所做的只是在一个新项目中创建一个同名数据库

var connection = mysql.createConnection({
  host: 'xx.xxx.xxx.xxx',
  user: 'root',
  password: 'xxx',
  database: 'xxx',
  multipleStatements: true
});

connection.connect(function(err) {
    if (err) throw err;
});

module.exports = connection;



第一个潜在原因是,根据您对云SQL实例的连接进行身份验证的方式,您可能必须创建一个新的服务帐户,并使用一个新的JSON密钥,App Engine将使用该密钥来连接到它。如果App Engine具有旧数据库的凭据,这将是一个根本原因

第二个问题是,如果将“app.yaml”文件设置为环境变量,“app.yaml”文件可能不会使用新数据库的新凭据进行更新。如何使用这种配置。请注意,此示例来自于从运行Node.js的应用程序引擎连接到云SQL。我建议您将其与示例文件一起完整阅读,并与您当前的代码/配置进行比较,以发现任何差异


最后,查看“server.js”文件,没有提到socketPath(位于/cloudsql/INSTANCE_CONNECTION_NAME)或TCP IP和端口。将该文件与已配置的文件进行比较(确保单击Node.js选项卡)。请注意,App Engine标准环境仅使用Unix域套接字,而灵活的环境也允许通过TCP进行连接。

谢谢您的回答。问题是在我的客户端文件中,我正在对应用程序的开发版本执行get和post请求,该应用程序使用错误的数据填充了应用程序。