我遵循關於如何設置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上結束運行... –