デプロイされたアプリからGoogle Cloud SQLサーバーに接続できません

rudolph1024:

私はGoogle Cloud SQLインスタンス(第2世代)を使用しており、自分のIPを承認した後、ローカルに正常に接続できます。テーブルから行を正常に取得するGoコードと、テーブルに行を正常に追加するコードがあります。ただし、アプリをデプロイすると、アプリがサーバーに接続できません。SQL関数が呼び出されるたびに、サーバーは500応答を返します。私のアプリは、このSQLインスタンスへの接続を承認されています。

ここに画像の説明を入力してください

次のGo接続コードを使用しています。

func dialSQL() (*sql.DB, error) {
    if appengine.IsDevAppServer() {
        return sql.Open("mysql", "root:password@tcp(xxx.xxx.xxx.xxx:3306)/Dbname")
    } else {
        return sql.Open("mysql", "root@cloudsql(projectid:regionname:instancename)/Dbname")
    }
}

デプロイされたバージョンとローカルバージョンは同じコードベースを使用していますが、デプロイされたバージョンはdialSQL()関数の2番目の接続文字列を使用しています。

私はこのGo MySQLドライバーを使用しています:https : //github.com/go-sql-driver/mysql

このドライバーのドキュメントには、Google App Engineを介してGoogle Cloud SQLサーバーに接続するための次の接続文字列が記載されています。 user@cloudsql(project-id:instance-name)/dbname

この投稿ではregionnamegoogle app engine golang、driver:bad connectionを含める必要があると述べているので、projectid:instancenameではなくprojectid:regionname:instancenameを使用しています。

紛らわしいことに、Googleのドキュメントでは次も省略していregionnameます:https : //cloud.google.com/appengine/docs/go/cloud-sql/reference

接続文字列の両方のバリエーションを試しました。

この投稿よると、デプロイされたアプリはhost = localhostを使用してサーバーに接続しようとします。この投稿よると、「root」@「localhost」のパスワードはnullである必要があります。

mysqlコンソールで次のクエリを実行して、ユーザー「root」@「localhost」が実際にnullパスワードを持っていることを確認しましたselect User, Host, HEX(authentication_string) from mysql.user'root' @ '%'ユーザーは、Google Cloud SQLインスタンスコンソールで指定したパスワードをまだ持っています。

GAEアプリとCloud SQLサーバーのリージョンに関して考えられる問題を調査しましたが、それらは同じリージョンにあります。また、第2世代のGoogle Cloud SQLサーバーでは、アプリのリージョンとサーバーの違いが許可されていることも学びました。

また、新しいユーザーを作成し、接続文字列で新しいユーザーのユーザー名を使用してインスタンスに接続しようとしました。これはエラーを修正しませんでした。

ファイアウォールルールも追加してみましたが、これでも問題は解決しませんでした。

ここに画像の説明を入力してください

最後に、Google Cloud ConsoleのCompute Engineセクションに移動し、アプリの最新インスタンスを提供しているVMにSSH接続しました。Cloud SQLサーバーのIPへのpingは成功しましたが、telnet xxx.xxx.xxx.xxx 3306タイムアウトしました。私も実行lsof -i TCP:3306しましたlsof -i | grep 3306が、プロセスは表示されませんでした。また、このボックスにmysqlをインストールし、そこからサーバーに接続しようとしましたが、接続に失敗しました。

誰かがこの問題を引き起こしている可能性があることを知っていますか?

rudolph1024:

デプロイされたGoogle App Engineアプリケーションが第2世代の Google Cloud SQL Server に接続しようとする、Go MySQLドライバー問題がある可能性があります。

第1世代の Cloud SQLインスタンスを作成し、次の接続文字列を使用して、デプロイされたGoogle App Engineアプリケーションを使用してサーバーに正常に接続できました。

user@cloudsql(project-id:instance-name)/dbname

リージョン名は必要ありませんでした。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

LaravelのGoogle Cloud App Engineに接続されたMySQLに画像をアップロードできません

分類Dev

java.sql.SQLNonTransientConnectionException:データベースサーバーへの接続を作成できませんでした-Google Cloud Platform

分類Dev

Docker化されたアプリからDockerのpostgresサーバーに接続できませんでした

分類Dev

Cloud SQLは、Google Cloud AppEngineにデプロイされたノードjsアプリケーションからクエリを実行するとETIMEDOUTエラーをスローします

分類Dev

SQLがデータベースサーバーに接続できません

分類Dev

AzureアプリからMSSQLサーバーに接続できません

分類Dev

LinuxのlaravelからAzure SQLサーバーに接続できません

分類Dev

ローカルサーバーに接続できません

分類Dev

ホーム接続からサーバーにSSH接続できません

分類Dev

Javajdbcからmssqlサーバーに接続できません

分類Dev

外部からLinuxサーバーに接続できません

分類Dev

MacOSからSSHサーバーに接続できません

分類Dev

RStudioからMicrosoftSQLサーバーに接続できません

分類Dev

Spring Cloud Config:クライアントは構成サーバーに接続しようとしません

分類Dev

Dockerでサポートされているasp.netコアプロジェクトからSQLサーバーに接続できません

分類Dev

リンクサーバーに接続できません

分類Dev

djongo、cloud.mongodb.comのリモートデータベースに接続できません

分類Dev

Google cloud_sql_proxyがインスタンスに接続できません、ストリームエラー、protocol_error

分類Dev

Spring Cloud Configサーバーの復号化サーバー側を無効にできませんでした

分類Dev

サーバーへの接続が失われた後、サーバーに再度接続できません

分類Dev

SQLクライアントからAmazonAuroraサーバーレスに接続できません

分類Dev

FTPサーバーに接続できません:425データ接続を構築できません:接続がタイムアウトしました

分類Dev

リモートサーバーからMySQLに接続できません

分類Dev

Google CloudPostgreSQLがサーバーから接続できません

分類Dev

サーバーに接続できません、アプリケーションが開きません

分類Dev

企業ファイアウォールの背後でcloud_sql_proxyを使用する-mysqlインスタンスに接続できません

分類Dev

minikube:ローカルにデプロイされたnginxサービスに接続できません

分類Dev

Heroku:PG :: ConnectionBad:サーバーに接続できませんでした:接続が拒否されました

分類Dev

SQL Server 2014-Windows 10に更新し、ローカルサーバーに接続できません

Related 関連記事

  1. 1

    LaravelのGoogle Cloud App Engineに接続されたMySQLに画像をアップロードできません

  2. 2

    java.sql.SQLNonTransientConnectionException:データベースサーバーへの接続を作成できませんでした-Google Cloud Platform

  3. 3

    Docker化されたアプリからDockerのpostgresサーバーに接続できませんでした

  4. 4

    Cloud SQLは、Google Cloud AppEngineにデプロイされたノードjsアプリケーションからクエリを実行するとETIMEDOUTエラーをスローします

  5. 5

    SQLがデータベースサーバーに接続できません

  6. 6

    AzureアプリからMSSQLサーバーに接続できません

  7. 7

    LinuxのlaravelからAzure SQLサーバーに接続できません

  8. 8

    ローカルサーバーに接続できません

  9. 9

    ホーム接続からサーバーにSSH接続できません

  10. 10

    Javajdbcからmssqlサーバーに接続できません

  11. 11

    外部からLinuxサーバーに接続できません

  12. 12

    MacOSからSSHサーバーに接続できません

  13. 13

    RStudioからMicrosoftSQLサーバーに接続できません

  14. 14

    Spring Cloud Config:クライアントは構成サーバーに接続しようとしません

  15. 15

    Dockerでサポートされているasp.netコアプロジェクトからSQLサーバーに接続できません

  16. 16

    リンクサーバーに接続できません

  17. 17

    djongo、cloud.mongodb.comのリモートデータベースに接続できません

  18. 18

    Google cloud_sql_proxyがインスタンスに接続できません、ストリームエラー、protocol_error

  19. 19

    Spring Cloud Configサーバーの復号化サーバー側を無効にできませんでした

  20. 20

    サーバーへの接続が失われた後、サーバーに再度接続できません

  21. 21

    SQLクライアントからAmazonAuroraサーバーレスに接続できません

  22. 22

    FTPサーバーに接続できません:425データ接続を構築できません:接続がタイムアウトしました

  23. 23

    リモートサーバーからMySQLに接続できません

  24. 24

    Google CloudPostgreSQLがサーバーから接続できません

  25. 25

    サーバーに接続できません、アプリケーションが開きません

  26. 26

    企業ファイアウォールの背後でcloud_sql_proxyを使用する-mysqlインスタンスに接続できません

  27. 27

    minikube:ローカルにデプロイされたnginxサービスに接続できません

  28. 28

    Heroku:PG :: ConnectionBad:サーバーに接続できませんでした:接続が拒否されました

  29. 29

    SQL Server 2014-Windows 10に更新し、ローカルサーバーに接続できません

ホットタグ

アーカイブ