5

グーグルとスタックオーバーフローを調べてみると、「データベース接続の確立に失敗しました。接続文字列、ユーザー名、パスワードを確認してください」という質問がいくつか見つかりました。しかし、根本的なエラーが何であるかを見つけた人を見つけることができません。

データベース接続を使用して最初のGoogleスクリプトを作成しようとしています。mysqlとoraclejdbcgetConnectionがあり、どちらもこのエラーを発生させます。接続情報を確認、二重確認、三重確認しましたが、役に立ちませんでした。私はデータベースにアクセスできることを知っています(Linuxボックスのphp、自宅や職場のさまざまなWindows PCのSQL開発者など、いくつかの異なるマシンから他のクライアントを介してアクセスできます)。実際のエラーを特定するにはどうすればよいですか?私に提示されたエラーは、あまりにも一般的で抽象的なものです。

環境:Googleスプレッドシートでスクリプトを使用します(したがって、Googleによって確立された環境を継承します)。Google API jdbcを使用しようとしていますが、環境変数についての知識がありません。

次の構文を使用します。

var url = "jdbc:mysql://mysql.cb-pta.com:3306/u4lottery";
var conn = Jdbc.getConnection(url, user, password); 

ここでも、ユーザーとパスワードが確認されています。

4

3 に答える 3

4

ホスト名を使用したjdbc接続で問題を引き起こす既知のバグがあります。代わりにIPアドレスを使用してみてください。

奇妙ですが本当です..私はこのバグでほぼ2日を失いました....

バグレポートへのリンクは次のとおりです。

于 2012-11-13T15:25:08.183 に答える
3

他の人がこの古いスレッドを見つけるためだけに。また、AppsScriptを使用してGoogleCloudSQLインスタンスに接続するのに問題があり、次の場所から変更する必要がありました。

Jdbc.getCloudSqlConnection('jdbc:google:rdbms://<IP>/<DB_NAME>', '<USER>', 'PASSWORD');

標準のJDBCMySQL(動作しました)へ:

Jdbc.getConnection('jdbc:mysql:// ...same as above...

また、注意してください。DB_NAMEの後ろに「/」を含めないでください。これにより、user/passwdエラーメッセージで失敗することもあります。

もう1つ確認する必要があるのは、適切なファイアウォール設定があることです。これにより、元のIPからのアクセスが許可されます(Apps Scriptの場合、これはGoogleのサーバーである可能性があります。クライアントブラウザーのIPではありません)。あなたはそれをすべてに開かなければならないかもしれません(0.0.0.0/0)

于 2018-01-15T20:44:04.350 に答える
1

データベースがファイアウォールの背後にあることに関係している可能性があります。Googleのドキュメント(この場合はGoogle Data Studioですが、一般的に適用可能)によると:「データベースがファイアウォールの背後にある場合は、次のすべてのIPアドレスへのアクセスを開く必要があります。これらはDataStudioが接続するために使用しますMySqlデータベースにクエリを実行します。」

ここにある他の場所のIPアドレス:https ://support.google.com/datastudio/answer/7088031

于 2019-07-07T10:08:24.820 に答える