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

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

新規登録して質問してみよう
ただいま回答率
85.31%
Google Apps Script

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

MySQL

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

Q&A

解決済

1回答

2378閲覧

ロリポップのMySQLにGAS(Google Apps Script)で接続

takeshi1907

総合スコア54

Google Apps Script

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

MySQL

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

0グッド

0クリップ

投稿2022/10/12 02:51

編集2022/10/12 02:53

前提

ロリポップのMySQLにGAS(Google Apps Script)で接続してデータを登録したく思っています。

jdbcを利用した接続方法は下記の公式ドキュメントを参考にしています。
https://developers.google.com/apps-script/reference/jdbc/jdbc#getconnectionurl

公式ドキュメント内で気になる点としては、その他のDBに接続する場合はIPの登録が必要と書いてありますが、ロリポップのMySDQLのIPを登録するのでしょうか。

以下に2点がわからなく、IPの登録は試していません。

・IPがわからない
・IPの登録方法がわからない

※ データベースバージョン は5.6です。

実現したいこと

エラーが発生してデータベースに接続できないので、接続できるようにしたい。

発生している問題・エラーメッセージ

エラーメッセージ Failed with an error Failed to establish a database connection. Check connection string, username and password.

該当のソースコード

function connectionDB() { var server = 'mysql154.phy.lolipop.lan'; var port = 2222; //portの部分は入れたり外したり両方試しました。 var dbName = 'LAA*******-******'; var dbUrl = 'jdbc:mysql://' + server + ':' + port + '/' + dbName; var user = "LAA********"; var userPwd = "*******"; try { const conn = Jdbc.getConnection(dbUrl, user, userPwd); const stmt = conn.prepareStatement('INSERT INTO users ' + '(memberid, fname, lname) values (?, ?, ?)'); stmt.setString("1", 'taro', "test"); stmt.execute(); } catch (err) { // TODO(developer) - Handle exception from the API Logger.log('Failed with an error %s', err.message); } }

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

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

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

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

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

guest

回答1

0

ベストアンサー

var server = 'mysql154.phy.lolipop.lan';

ロリポップの lolipop.lan ドメインの MySQL サーバーには、ロリポップの内部ネットワークのみが接続できる設定になっているようで ロリポップのレンタルサーバ以外からは接続できない様になっています。(過去にロリポップのサポートに問い合わせて「ロリポップのサーバー以外の外部から接続できないという」旨の回答を得ています。 また、dig で検索してみましたが IP アドレスが返ってこないので現在も同様な状況と思います。)


そのため、GASからロリポップの MySQL にどうしてもアクセスする必要がある場合は、ロリポップのレンタルサーバ上で ロリポップの MySQL サーバーへSQLコマンドを中継するような Web API を作成して、ロリポップの Web サーバを経由してアクセスしないと難しいと思います。

投稿2022/10/12 03:12

CHERRY

総合スコア25234

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

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

takeshi1907

2022/10/12 04:26

そういう事だったのですね!貴重な情報どうもありがとうございます。 ロリポップのWebサーバを経由してアクセスするような形で対応したいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問