我遵循关于如何设置Node.JS以使用Cloud SQL的示例,并且通常可以使用它,但是有一些解决方法可以连接到SQL服务器。我无法以正确的方式连接INSTANCE_CONNECTION_NAME
到变量的socketPath
选项,用于createConnection()
方法。相反,作为临时解决方法,我目前指定服务器的IP地址,并将我的虚拟机IP地址放入服务器的防火墙设置中,以便让它通过。从Node.JS连接到Google Cloud SQL的正确方法
这一切都有效,但我现在试图在发布到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);
}
但下面的代码,我从Tutorial从Github page,这是在教程提到,结合是给错误:
function getConnection()
{
const options =
{
user: 'root',
password: 'somePassword',
database: 'DatabaseName',
socketPath: '/cloudsql/project-name-123456:europe-west1:sql-instance-name'
};
return mysql.createConnection(options);
}
下面是我得到的错误:
{ [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 }
我在做什么错?我担心的是,如果我使用IP地址将应用发布到AppEngine,我将无法允许传入流量进入SQL服务器?
好一点,是的,看起来它正好是在欧洲West1-C ,即使我没有想过它...... –
正确答案? – Gary
还不知道。作为解决方法,在Compute Engine上结束运行... –