質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

2回答

2474閲覧

GASからGCPのCloudSQLへの接続が確立できない

jzx100ts

総合スコア28

Google Cloud Platform

Google Cloud Platformは、Google社がクラウド上で提供しているサービス郡の総称です。エンドユーザー向けサービスと同様のインフラストラクチャーで運営されており、Webサイト開発から複雑なアプリ開発まで対応可能です。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2020/09/02 12:05

編集2020/09/02 15:27

下記サイトを参考にしながら、GASからGCPのCloudSQL内のデータベースに接続を試みています。
GASのJDBCサービスでCloud SQLデータベースに接続をする方法
このサイトには個人的にいつも本当にお世話になっています。

さて、説明通りに進めているのですが、下記エラーが発生してしまい、接続が確立できません。

メッセージの詳細
Exception: データベース接続を確立できませんでした。接続文字列、ユーザー名、パスワードを確認してください。(行 1760、ファイル「code」)

コードは下記です。

gas

1function dbtest() { 2 const userName = 'root'; 3 const password = '********'; 4 Jdbc.getCloudSqlConnection('jdbc:google:mysql://************:us-west1:********', userName, password); 5 6 Jdbc.getCloudSqlConnection('jdbc:google:mysql://************:us-west1:********', userName, password).close(); 7}

*は伏せ字です。

1760行目に記述されているのは、
Jdbc.getCloudSqlConnection('jdbc:google:mysql://********:us-west1:****', userName, password);
という内容です。
(userName, password)には適切な情報を入れています。

これらの変数が適切であると言えるのは、MySQL Workbenchというソフトを使った場合、対象データベースにネットワークを追加して自宅のIPアドレスを許可すると、「パブリックIP」をホストに指定した場合にはCloudSQLに接続ができ、操作もできるからです。

そのようなわけで、接続が確立できないのは対象データベースに接続を許可する何かの設定をしていないからではないかと考えておりますが、参考にさせていただいているウェブサイトにはそうした設定については言及されていないので、今回、こちらで質問させていただきました。

GASとMySQLで接続を成功させているブログはたくさんあり、色々見ているのですが、なかなか核心に至れないでいます。

SpreadSheetからCloudSQL(MySQL)に接続する方法
上記記事も参考にさせていただき、手動で
JDBCにあるIP一覧をパブリックIPに追加しました。

追加したIP一覧はこちら
64.18.0.0/20
64.233.160.0/19
66.102.0.0/20
66.249.80.0/20
72.14.192.0/18
74.125.0.0/16
173.194.0.0/16
207.126.144.0/20
209.85.128.0/17
216.239.32.0/19

上記を追加してみたものの、接続は確立できませんでした。

こうした状況なのですが、私が見落としている点がありましたら教えていただけましたらありがたく思います。またこのような質問をしている私が補うべき知識の分野にお気づきになるようでしたら、参考になりそうな情報や学ぶべき分野についても教えていただけたら嬉しく思います。

それではどうぞよろしくお願いいたします。

追記2020/09/03 0:21
その後、下記サイトの方法も試しましたが接続を確立することはできませんでした。
Be Happyman!!
簡単そうに書かれているものの、かなりハードルが高いような気がしますが、このような使い方をする方はあまりいらっしゃらないのでしょうかね。
実は今回、私が本当に行いたいことは、FireBaseでホスティングしたHTML+CSS+JS(Vue)から、CloudSQLのRDBに接続してデータを読み書きすることなのですが、その方法もよく分からず、GAS経由で接続しようとしているところなのです。結局CloudSQLを気軽に使う方法って本当にあるの?という感じで疑問に悩むこの数週間です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんにちは。
昨日から同じ現象でずいぶん悩み、一応解決したので書いておきます。

まずGASのJDBCがMySQLの5.7までしか対応していないようです。
私の場合、DBをPostgresやMySQL8で作成していたため、接続がうまくいきませんでした。
その他セキュリティ設定などは記載されているとおりで大丈夫と思います。

これで2日つぶれましたorz

何かのお役に立てばよいのですが・・・

投稿2020/10/01 01:47

koji_v

総合スコア9

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jzx100ts

2020/10/04 03:00

今回は貴重な情報を教えてくださりありがとうございました。 確かに私もMySQL8.0に接続しようとして成功していませんでしたので、御指摘の点がしっかり当てはまっていると思われます。私はこれが解決できないためFirebaseのFirestoreを採用することになったので、すぐにGASからの接続をリトライすることができない環境ですが、今後役立つ可能性が高い情報でしたのでベストアンサーとさせていただきました。本当にありがとうございました!
guest

0

CloudSQLのプロジェクトと、GASのScript実行ユーザーは同じですか?
同じでなければ、Cloud ConsleのIAMで権限を与える必要があります。

投稿2020/10/01 07:00

編集2020/10/01 07:03
hnak

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jzx100ts

2020/10/04 03:02

回答をしてくださりありがとうございました。 私もIAM周りについてもっと勉強しなくてはいけないと思いつつ、よく分かっていない部分でしたので、ご指摘の部分も学習しつつ確認していきたいと思います。 ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問