【发布时间】:2021-01-24 01:07:10
【问题描述】:
我有一个在本地运行的带有 MySQL 的 NodeJS 应用程序,但现在我已经将它部署在 APP Engine 中,我需要将它与 MySQL Google Cloud 连接,我已经创建了 MySQL 实例和数据库,但我无法连接我的应用程序(App Engine 中的 NodeJS)与我在 MySQL 云中的数据库,我正在使用以下代码:
const mysql = require('mysql');
var con = mysql.createConnection({
host: "host-IP",
socketPath: "/cloudsql/project:region:instance",
user: "USERNAME",
password: "USERPASSWORD"
});
con.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
module.exports = con;
Archivo .YAML---------------
runtime: nodejs
env: flex
env_variables:
SQL_USER: "USERNAME"
SQL_PASSWORD: "USERPASSWORD"
SQL_DATABASE: "DBNAME"
INSTANCE_CONNECTION_NAME: "project:region:instance"
beta_settings:
cloud_sql_instances: "project:region:instance"
请帮帮我。
【问题讨论】:
-
让 mysql 受到来自 Internet 的攻击是一个非常非常糟糕的主意。阅读 REST,你有一个处理所有流量的服务器端脚本
-
@nbk 对不起,我是新人,请您多解释一下您所说的以及我如何解决让 mysql 容易受到攻击的问题!
-
node js 已经是一个服务器端脚本,你想访问云中的 mysql 数据。由于您应该使 mysql 服务器可用,因此您有一些可能性,您可以为云编写一个节点 js 脚本,该脚本将在 clud 服务器上运行,或者您编写一个具有相同意图的 php 脚本,或者您编写一个可以 cakk 的 angularjs 脚本使用 ajax 从云服务器获取数据。想想,为什么不直接在云端运行你的nodejs nt呢?
-
您似乎发布了敏感/私人信息。如果是这种情况,请重置您的密码和/或撤销 API 密钥和令牌,因为它们在互联网上发布时被视为已泄露。
标签: mysql node.js google-app-engine google-cloud-platform