2013-07-03 79 views
0

獲取錯誤:「無法建立數據庫連接。檢查連接字符串,用戶名和密碼。」如果我運行以下腳本。我可以通過mysql工作臺本地連接但無法使用googleapp腳本。不知道我在哪裏出錯。另外,如果我爲電子表格編寫腳本,是否需要設置觸發器?無法通過localhost將google apps腳本連接到mysql

function test() { 
    var conn = Jdbc.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root",""); 
    var stmt = conn.prepareStatement("SELECT * FROM info;"); 
    var dbList = stmt.executeQuery(); 
    dbList.next(); 
    var row = 0; 
    Logger.log("Start of Log:"); 
    while(dbList.next()) 
    { 
    Logger.log(dbList.getString(1)); 
    row++; 
    } 
    } 

謝謝。

回答

2

IP地址127.0.0.1代表您的本地計算機。它不能被網絡上的其他計算機用於連接到您的計算機。請記住,Google Apps腳本在Google的服務器上運行,因此您需要提供他們可以訪問的IP地址。

許多人犯的另一個常見錯誤是提供一個192.168.x.x或一些類似的內部IP地址。因此,請提供可供外部計算機訪問的IP地址。

3

好了,如果你是從你家這樣做的,想在筆記本電腦上運行谷歌應用程序腳本本地的MySQL數據庫遵循以下步驟: -

1)暴露在你的筆記本電腦到互聯網端口3306。

登錄到您的路由器和端口將3306端口轉發到您的筆記本電腦: - 如果您擁有netgear路由器,這裏是一個簡短的youtube視頻。基本上你在這裏做的是;當谷歌的服務器上運行谷歌的腳本試圖找到你的數據庫擊中端口3306路由器(公網IP)現在從那裏這個請求被路由到特定laptop.Example端口轉發視頻: - Port Forwarding Video

2)用用戶名,並從任何計算機密碼打開MySQL的數據給任何人: - 你的MySQL數據庫上運行以下命令: -

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; 

3)用你的公網IP在以下行: - 所以相反var conn = Jdbc.getConnection(「jdbc:mysql://127.0.0.1:3306/test」,「root」,「」); 使用以下

var conn = Jdbc.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root",""); 

就在你面對IPV6和JDBC兼容的問題,如最會的情況。從以下地址得到你的公網IP: - get my IPV4 address

所以不是127.0.0.1的使用結果從上面的谷歌查詢

相關問題