VS_*_*_FF 8 google-app-engine node.js google-cloud-sql google-cloud-platform
我按照有关如何设置 Node.JS 以与 Cloud SQL 一起使用的示例进行操作,并且通常可以使其正常工作,但有一些关于如何连接到 SQL 服务器的变通方法。我无法以正确的方式连接,将 传递INSTANCE_CONNECTION_NAME给方法socketPath的options变量选项createConnection()。相反,作为临时解决方法,我目前指定服务器的 IP 地址并将我的 VM IP 地址放入服务器的防火墙设置中以使其通过。
这一切都有效,但我现在正在尝试在发布到 AppEngine 之前将其正确组合在一起。
我怎样才能让它工作?
以下代码工作正常:
function getConnection ()
{
const options =
{
host: "111.11.11.11", //IP address of my Cloud SQL Server
user: 'root',
password: 'somePassword',
database: 'DatabaseName'
};
return mysql.createConnection(options);
}
Run Code Online (Sandbox Code Playgroud)
但是我从教程和教程中引用的Github 页面合并的以下代码给出了错误:
function getConnection ()
{
const options =
{
user: 'root',
password: 'somePassword',
database: 'DatabaseName',
socketPath: '/cloudsql/project-name-123456:europe-west1:sql-instance-name'
};
return mysql.createConnection(options);
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误:
{ [Error: connect ENOENT /cloudsql/project-name-123456:europe-west1:sql-instance-name]
code: 'ENOENT',
errno: 'ENOENT',
syscall: 'connect',
address: 'cloudsql/project-name-123456:europe-west1:sql-instance-name',
fatal: true }
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?我担心如果我使用 IP 地址将应用程序发布到 AppEngine,我将无法允许传入流量进入 SQL 服务器?
您是否将 AppEngine 应用程序部署到与 SQL 数据库相同的区域?(欧洲-西部1)
https://cloud.google.com/sql/docs/mysql/connect-app-engine上的文档指出“您的应用程序必须与您的 Cloud SQL 实例位于同一区域。 ”
| 归档时间: |
|
| 查看次数: |
11022 次 |
| 最近记录: |