【问题标题】:Error while trying to connect to an external DB server from Google App Engine尝试从 Google App Engine 连接到外部数据库服务器时出错
【发布时间】:2016-11-23 12:58:15
【问题描述】:

我有一个场景,由于某种原因,我无法使用 Google 的 Cloud SQL。因此,我希望 appid.appspot.com 上的应用程序连接到外部数据库服务器。

DB.php

'hostname' => '202.202.202.202',
    'username' => 'user',
    'password' => 'password',
    'database' => 'dbname',
    'dbdriver' => 'mysql',

这给了我一个服务器错误,但是我可以从 mysql 工作台连接到数据库。此应用程序在连接到 Cloud SQL 时没有问题。

错误信息:

Error: Server Error

The server encountered an error and could not complete your request.
Please try again in 30 seconds.

有人可以帮助我了解我哪里出错了。

【问题讨论】:

  • “给我一个服务器错误”——比如?
  • @JeremyHarris 很抱歉,我在问题中包含了错误消息。
  • 谢谢。日志中有任何内容吗? cloud.google.com/appengine/articles/logging
  • 没有特定于此错误的内容。但是,如果我将主机名从 IP 更改为 host.domain.com,我不会收到服务器错误,但会收到“消息:mysqli::real_connect():php_network_getaddresses:gethostbyname failed.errno=0”
  • 也许这会有所帮助? stackoverflow.com/questions/21818997/…

标签: php mysql codeigniter google-app-engine


【解决方案1】:

我进行了以下更改并使其正常工作。

我给外部数据库服务器一个主机名,而不是 IP 地址。

'hostname' => 'dbserver.example.com',
'username' => 'user',
'password' => 'password',
'database' => 'dbname',
'dbdriver' => 'mysqli',

然后我为 Google App Engine 项目启用了结算功能。激活结算功能后,Google Socket API 将开始运行。

请不要立即尝试。给它一些时间,这应该开始工作得很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-25
    • 2019-12-30
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 2017-08-07
    • 1970-01-01
    • 2016-12-03
    相关资源
    最近更新 更多