PDOException”有消息‘SQLSTATE [HY000] [2002]连接超时’尝试连接到Google云SQL

问题描述:

枝成员
所以我试图从外部站点PDOException”有消息‘SQLSTATE [HY000] [2002]连接超时’尝试连接到Google云SQL

我连接到谷歌云SQL时在实例 - >访问控制 - >授权

授权在谷云中的服务器的IP,实例也被分配了一个IP可以说'XXXX', 和一个用户也创建用户名'用户名'和密码'密码'

现在连接用于连接谷歌云SQL代码我使用的是如下

$db = new pdo('mysql:host=X.X.X.X;dbname=db','username','password'); 

,我试图打开该网页,我收到以下错误

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Connection timed out' in /home/kannadakavana/public_html/test.php:17 Stack trace: #0 /home/kannadakavana/public_html/test.php(17): PDO->__construct('mysql:host=X....', 'username', '') #1 {main} thrown in /home/kannadakavana/public_html/test.php on line 17 

我究竟做错了什么?

+0

我试着授权我的本地系统IP并运行脚本,它的工作原理! 所以这里的问题实际上是防火墙 谢谢你们的支持:) –

默认情况下,云端SQL实例不支持IPv4。

您是否启用IPv4地址?它位于访问控制> IP地址选项卡下。

+0

是的先生 我确实启用IPV4地址,我用它作为'mysql:host =“分配ip”' 我做对了吗? –

+0

我们必须给出任何端口号吗? –

+0

它使用默认的MySQL端口号 - 你不需要那样做。 当你说'MySQL的:主机= “分配的IP”',我假设它是像'MySQL的:主机= “10.0.0.1”'(另一种有效的IP地址)。 你可以用命令行连接mysql吗? –

如果CloudSQL实例是按需实例,则在实例快速启动时,您有时会首次尝试连接超时。

如果这是问题,那么解决方案是永远在线的实例或(最好)自动连接重试与退避。

+0

对不起,先生,我没有得到这部分防火墙'的自动连接与后台off'如果重试这意味着重新加载页面,我尝试每隔5分钟重新加载页面一个小时 –