2016-08-17 101 views
1

我们正在运行需要与mySQL数据库连接的node.js服务器。我们在amazon RDS上托管了我们的数据库,但是现在我们已经将其移交给Google SQL,并且我们在10分钟后随机丢弃连接时遇到问题。无法在Google云计算引擎实例上设置tcp_keepalive_time

显然,这是一个特性,而不是bug,而解决办法是设置在我们从连接机器的低TCP存活,如下所述:https://cloud.google.com/sql/docs/diagnose-issues

的代码应该是:

echo 'net.ipv4.tcp_keepalive_time = 60' | sudo tee -a /etc/sysctl.conf 
sudo /sbin/sysctl --load=/etc/sysctl.conf 

不幸的是,当运行代码时,我得到:

sysctl: cannot stat /proc/sys/net/ipv4/tcp_keepalive_time: No such file or directory 

我们有这台机器的root访问权限,但我们甚至不能手动创建的T文件命名cp_keepalive_time在这个文件夹中。

我们感到非常困惑,因为解决方案来自官方的Google Cloud SQL文档,因此应该按照所述的方式工作。

有没有人有任何见解分享?感谢提前:)

+0

这是第一代还是第二代实例? – Vadim

+0

这也是由于node-mysql/node-mysql2驱动程序未启用keepalive(与大多数其他MySQL驱动程序不同)。看看这个答案:http://stackoverflow.com/a/35710201/350488 – Vadim

回答

0

自动应答:

你不能访问文件系统的管理员(显然)从Web /云主机。

我们使用gcloud AUTH(从gcloud SDK)从therminal登录,的puttygen创建一个SSH密钥,然后腻子从适当的SSH客户端(而不是云SSH控制台通过SSH连接到机器),并确定它的工作。

奇怪的是,希望这可以帮助有相同问题的其他人!

相关问题