跳到主要內容

發表文章

目前顯示的是有「Cloud SQL」標籤的文章

Connect CloudSQL with SSH tunnel

連線到CloudSQL的方式很多 原則上與使用MySQL無異 而在MySQL連線上,使用SSH Tunnel的方式算是安全又穩定的 而SSH Tunnel簡單的說就是透過SSH到某一檯Linux主機 再透過該主機連線到MySQL的方式 有了這樣的連線方式 我們可以在CloudSQL的Connection Control部分設定允許root角色由某個IP連線過去 而該IP可以設定成一檯Compute Engine的IP位置 這樣,像MySQL workbench之類的連線工具就可以使用SSH Tunnel連線到CloudSQL中 概念如下圖: 而Workbench的部分,設定大致如下: 原則上有兩個部分: SSH server部分:設定中繼的SSH server位置與連線上去的金鑰或是帳號密碼 MySQL server部分:設定最終要連線的MySQL位置與帳號密碼等資訊 這樣的連線方式通常適用在您申請了GCE server作為AP開發使用時候 為了安全性考量,CloudSQL可以只開放給GCE server連線 這時候,使用SSH Tunnel從AP server轉連線到CloudSQL資料庫則相當方便喲∼

Google Cloud Platform - CloudSQL使用過程記錄

今天介紹GCP(Google Cloud Platform)之下的DB生力軍:CloudSQL 透過新版本的Cloud Console( https://cloud.google.com/console) 來建立一個Cloud MySQL instance並不難,原則上是填妥資料一步一步往下走就可以完成... 完成後建置的DB Instance會列表在CloudSQL的預設頁面中... 建立好的CloudSQL Instance必須透過Google Cloud SDK中的google_sql.sh來執行... 安裝Cloud SDK可以在cloud console中的最下面找到SDK的下載點 SDK的大部分功能是使用Python實作 即使Java的版本,中間也離步開Python... 安裝=解壓縮...  安裝好之後,偷看一下google_sql.sh的原始碼(shell script) 原來是透過google_sql.jar來做連線,這應該意味著Remote Java要存取CloudSQL也可以透過google_sql.jar來做連線 :D 透過sdk使用CloudSQL前需要先讓sdk進行認證 認證是透過sdk底下的bin/gauth來做認證... 過程中會開啟瀏覽器讓你點選同意 然後畫面會自動關閉,回到console畫面...等到看到success時候,代表認證已經完成 :D 接下來來做連線DB與DB的基本操作... 連線方式是透過 bin/google_sql.sh [ instance id ] 來做連線 連線進入之後,操作與一般MySQL無異 而資料的匯入也不難... 與mysql操作相仿,可以透過"<"來將sql檔案導入 下面是操作: 之前已經有介紹透過Apps Script來連線CloudSQL( 這裡 ),這邊就不多說... 至於GAE連線CloudSQL,理論上需要在CloudSQL的授權部分加上GAE專案的Project ID 然後GAE服務就可以直接連線存取,相關說明,可以參考 這裡 ...

Google Cloud Platform - CloudSQL使用過程記錄

今天介紹GCP(Google Cloud Platform)之下的DB生力軍:CloudSQL 透過新版本的Cloud Console( https://cloud.google.com/console) 來建立一個Cloud MySQL instance並不難,原則上是填妥資料一步一步往下走就可以完成... 完成後建置的DB Instance會列表在CloudSQL的預設頁面中... 建立好的CloudSQL Instance必須透過Google Cloud SDK中的google_sql.sh來執行... 安裝Cloud SDK可以在cloud console中的最下面找到SDK的下載點 SDK的大部分功能是使用Python實作 即使Java的版本,中間也離步開Python... 安裝=解壓縮...  安裝好之後,偷看一下google_sql.sh的原始碼(shell script) 原來是透過google_sql.jar來做連線,這應該意味著Remote Java要存取CloudSQL也可以透過google_sql.jar來做連線 :D 透過sdk使用CloudSQL前需要先讓sdk進行認證 認證是透過sdk底下的bin/gauth來做認證... 過程中會開啟瀏覽器讓你點選同意 然後畫面會自動關閉,回到console畫面...等到看到success時候,代表認證已經完成 :D 接下來來做連線DB與DB的基本操作... 連線方式是透過 bin/google_sql.sh [ instance id ] 來做連線 連線進入之後,操作與一般MySQL無異 而資料的匯入也不難... 與mysql操作相仿,可以透過"<"來將sql檔案導入 下面是操作: 之前已經有介紹透過Apps Script來連線CloudSQL( 這裡 ),這邊就不多說... 至於GAE連線CloudSQL,理論上需要在CloudSQL的授權部分加上GAE專案的Project ID 然後GAE服務就可以直接連線存取,相關說明,可以參考 這裡 ...

Apps Script連線MySQL或CloudSQL

Apps Script中連線資料庫也是使用jdbc connection string的方式來連結 感覺起來這邊似乎背後是透過GAE(畢竟也是Java Base的)來連線...(純猜的...) 下面先看看透過Apps Script來連線一般MySQL資料庫的方法: function testMySQL(){   var conn = Jdbc.getConnection('jdbc:mysql:// DB_IP_ADDRESS : DB_PORT / DB_NAME ', ' USERNAME ', ' PASSWORD ');     var stmt = conn.createStatement();   stmt.setMaxRows(100);   var start = new Date();   var sql = "select * from customers";   var rs = stmt.executeQuery(sql);   Logger.log('SQL:' + sql);   while(rs.next()){     Logger.log('['+new Date().toString() + ']' + rs.getString(1) + '::' + rs.getString(2) );   } } 上面範例中connection string的部份,DB_IP_ADDRESS為資料庫的IP位置,DB_PORT為資料庫的連線埠號,記得也把USERNAME與PASSWORD也改一下唷∼ 連線建立完成後,後面的操作也與Java版本相仿 透過建立statement之後,使用statment實體執行sql語句 最後透過result set將值fetch出來... 而Google的Cloud SQL也一樣可以在Apps Script中進行操作 操作之前,先了解一些資訊.... 在新的API Console中,我們可以找到Instance ID,這個值之後...

透過Google指令碼,存取Google Cloud SQL

既然Cloud SQL提供了MySQL的Feature 那麼透過指令碼(Apps Script)來存取Cloud SQL應該也是OK的拉! 這邊介紹一下在指令碼中操作的方式 首先要確認一下您在Cloud SQL中申請的DB Instance名稱 而名稱可以在API Console中找到 此範例是屬於手動執行的部份,因此這邊建一個test function來收容db query的code... function test(){   var conn = Jdbc.getCloudSqlConnection("jdbc:google:rdbms://[db instance name]/[db name]");   var stmt = conn.createStatement();   stmt.setMaxRows(100);   var start = new Date();   var sql = "select * from member_info";   var rs = stmt.executeQuery(sql);   Logger.log('SQL:' + sql);   while(rs.next()){     Logger.log('['+new Date().toString() + ']' + rs.getString(1) + '::' + rs.getString(2) );   } } Project看起來像這樣: 此時,在工具列選擇要執行的Function後,點選執行按鈕,就可以執行撈取Cloud SQL的動作了... 執行時候會發現Google會跟您要求受權,請user同意讓Script Editor來執行這部份程式,同意後才可以執行... 這部份是說,如果將來把這段程式碼放到Web Service中時候,該Web Service App也需要經過授權才能使用...

Google Cloud SQL CLI操作

首先Google Cloud SQL的CLI Tool包含連線至Cloud SQL的方式,而後續的資料面操作的部份,原則上與一般MySQL使用無異,這邊就不多做介紹... CLI的下載點: http://dl.google.com/cloudsql/tools/google_sql_tool.zip 安裝部分,其實就是解壓縮,然後就可以使用 筆者這邊做了一些小設定,方便使用: 設定symbolic link: google_sql (這是因為該目錄下有.sh, .cmd, .jar三個檔案,在Mac中需要用到.sh指令,因此...) 設定.bash_profile將路徑加到$PATH中 設定完成後,即可透過google_sql來操作... 連線到某個instance:  $ google_sql [instance name] 執行;(這邊是個錯誤的示範...) 執行後,程式會丟出一個短網址,透過短網址讓操作者取回Auth Token,操作步驟如下... 短網址開啟後,會是一個Google Oauth2的登入畫面 登入後,則進入授權AP的畫面... 經過授權過後,就可以得到Cloud SQL的Auth Code,把這串文字貼到Command Line後就可以繼續操作 第二次的登入就不用再登入(Google的OAuth會有個可用時間區間,在該區間內,Auth token可以持續使用) 登入後,則可以進入MySQL的操作畫面... 相信到這邊,大家應該會有許多的想法了... 透過CLI可以撰寫Script做許多自動化的事拉∼ 詳細的CLI操作文件可以在這邊找到l: https://developers.google.com/cloud-sql/docs/commandline?hl=zh-TW

Google Cloud SQL試用

不讓Xeround專美於前,Google大神也推出了Cloud SQL服務 同樣採用MySQL作為DB Server Instance 讓我們來看看Google的一些申請與操作... 開啟Cloud SQL之後,在API Console的左邊就會發現Cloud SQL的操作介面,下面就開始開立一個Instance (這邊的Instance是指Server Instance,每個Server Instance可以開立一個以上的Database... 看起來,目前D0 size的DB免費提供到2013年6月,要玩的要快!) 主機開立好後,可以看到D0是一台約512M的主機,剛開始就用掉50M了... 另外,下面有附上各式的監控數據,顯示部分,用得也是Google的Chart服務喔∼ 下面有個Authorized Application的部份,提供設定sql要給哪些app可以叫用,滿貼心的設計 Google提供簡單的Log機制,可以在這邊看到剛剛的DB已經建立完成 透過API Console的操作介面,使用者可以透過SQL Prompt來執行DDL與DML,這邊直接Create Database... Execute Query也可以透過SQL Prompt操作,show database後,知道他提供的資料庫大致上就是一般主機建立好MySQL server後的內容 其他的查詢操作就不做介紹拉,相信大家都是比厲害的... 而Google也提供其他連線方式: CLI(Command Line Interface)連線,目前Google Cloud SQL需透過特製的工具做連線使用 Cloud SQL操作說明: https://developers.google.com/cloud-sql/docs/commandline?hl=zh-TW Cloud SQL工具下載: http://dl.google.com/cloudsql/tools/google_sql_tool.zip Remote App連線... 如果需要由外部程式連接Cloud SQL,可以參考 https://developers.google.com/cloud-sql/docs/external?hl=zh-TW 以上的連線部分,容後再介紹...