GAS(Google Apps Script)から、Cloud SQLに接続をJDBCから行ったのだが、下記のエラーが出て接続できない。
Exception: データベース接続を確立できませんでした。接続文字列、ユーザー名、パスワードを確認してください。
接続先の環境は、Cloud SQL(Google Cloud Platform SQL)上で新しく作ったインスタンスで、第2世代で、MySQL8.0のインスタンス。
GASのソースコードとしては、下記。
function dbConn() {
var dbConnectName = "プロジェクト名:us-central1:インスタンス名"; // GCP上で表示される接続名
var user = "ユーザ名";
var password = "パスワード";
var dbName = "DB名";
var conURL = "jdbc:google:mysql://" + dbConnectName + "/" + dbName;
Logger.log(conURL);
var dbCon = Jdbc.getCloudSqlConnection(conURL, user, password);
Logger.log(dbCon.getCatalog());
return dbCon;
}
いろいろと調べて、JDBCの`Jdbc.getConnection`でも試したが、接続できず。
原因として、わかったことは、GASから呼び出されるJDBCは、MySQL8.0へのインスタンスへの接続に対応していないということ。MySQL5.7で新しくインスタンスを作り直して、`Jdbc.getCloudSqlConnection`を行ったところ、あっさりと接続できた。
まさか、JDBCが対応していないとは。