請參閱下面的編輯,我將離開原始問題以幫助其他人。無法通過應用腳本(JDBC)連接到本地MySQL服務器
我試圖通過Apps腳本和JDBC連接到本地MySQL服務器,但我不斷收到兩個錯誤之一。此代碼:
function connectTest() {
var conn = Jdbc.getConnection("jdbc:mysql://localhost", "root", "xxx");
}
給出Failed to establish a database connection. Check connection string, username and password.
此代碼的錯誤:
function connectTest() {
var conn = Jdbc.getConnection("jdbc:mysql://localhost:3306", "xxx", "pass");
}
給出Invalid argument: url
錯誤。
我試過幾十種組合,無法讓它正常工作。從Apps腳本登錄的嘗試不會顯示在MySQL的訪問日誌中(即,如果我嘗試使用錯誤的信息本地登錄,則看到[Note] Access denied for user 'host'@'localhost' (using password: YES)
。我已授予root的相應訪問權限:
mysql> show grants for 'root'@'%';
+-------------------------------------------------------------+
| Grants for [email protected]% |
+-------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
我必須做別的事情揭露本地數據庫到互聯網/谷歌Apps腳本
編輯:
我現在能夠得到從MySQL日誌訪問被拒絕的說明(如Access denied for user 'root'@'12.123.12.123' (using password: YES)
),但該應用程序仍然無法連接。我嘗試添加bind-address
與我的公共IP,但MySQL不會啓動,我得到( [ERROR] Can't start server: Bind on TCP/IP port: Can't assign requested address
)
function connectTest() {
var conn = Jdbc.getConnection("jdbc:mysql://12.123.12.123:3306", "root", "xxx");
}
EDIT2:我改變了綁定地址= 0.0.0.0,這確實讓我在數據庫日誌獲取拒絕訪問錯誤,但仍然沒有運氣連接。我已成功連接到互聯網上的其他開放式MySQL數據庫(例如ensembldb.ensembl.org:3306),但我仍無法連接到本地數據庫。
我覺得你有麻煩,因爲IP地址超出給定的IP範圍範圍列入白名單。有關其他信息,請參閱文檔 - [爲其他數據庫設置](https://developers.google.com/apps-script/guides/jdbc#setup_for_other_databases)。希望這可以幫助。 –
@Mr。Rebot不應'root'@'%''允許所有IP地址? – howMuchCheeseIsTooMuchCheese
請不要發佈您自己的服務器的公共IP,請請不要使用root帳戶連接到它!也不要將所有地址列入白名單,只有那些來自谷歌服務器的地址(遵循@Rebot先生的鏈接)。這可能會多一點工作,但你會更安全! – mTorres