簡體   English   中英

在 ClearDB 上升級計划,部署到 heroku 時無法連接

[英]Upgraded plans on ClearDB and unable to connect when deployed to heroku

我將我的計划從免費套餐升級到專用的 25 套餐。 當我在本地更新和測試時,我能夠連接。 與工作台一樣,我可以查詢我的數據。

當我在 Heroku 中更新我的 Env vars 時,它無法建立連接而沒有任何真正的錯誤。 我重新啟動了所有的測功機,但仍然沒有運氣。 我相信這可能是 Heroku 的網絡問題。 任何幫助

org.springframework.jdbc.CannotGetJdbcConnectionException: 無法獲取 JDBC 連接; 嵌套異常是 java.sql.SQLException:訪問被拒絕用戶 'b3b4204cd59615'@'ip-xxxx.ec2.internal'(使用密碼:是)] 與根本原因

java.sql.SQLException:拒絕用戶'b3b4204cd59615'@'ip-xxxx.ec2.internal'的訪問(使用密碼:是)


我的 MySQL 版本:'MySQL 社區服務器 (GPL) 版本 5.6.50'

並使用最新版本的“mysql-connector-java”

implementation 'mysql:mysql-connector-java:8.0.28'

好吧,我想通了。 這不是什么obvs所以你必須知道一個背景故事。

當您將 clearDB 添加到項目中時,它會自動創建一個名為“CLEARDB_DATABASE_URL”的 ENV var,這是一個字符串,其中存儲了用戶名、密碼和 url 數據。 然后他們向您展示了一種在其文檔中使用配置文件創建 DataSource obj 的方法。 我猜希望你完全遵循這一點。

好吧,我不想進行配置,而是讓 spring 為我完成工作,在 application.properties 中設置它們,然后使用專用於每個值的環境變量注入它。 即“db.url”、“db.password”和“db.username”,它有效。

因此,當我升級時,它給了我一個新的 ENV VAR,其中包含新的 URL,因為用戶名和密碼保持不變。 (“CLEARDB_CYAN_CLEARDB_HOSTNAME_1”)

所以我不再使用“CLEARDB_DATABASE_URL”,而是使用我自己的環境變量。 (像這樣)

spring:
  datasource:
    driverClassName: com.mysql.cj.jdbc.Driver
    username: ${db.username}
    password: ${db.password}
    url: ${db.url}

好吧,我很確定他們是幕后的一些人。正在進行的網絡權限會查看該值並允許訪問它或其他東西,因為我為解決我的問題所做的是雖然我不再使用那個 var,我采用了新的 URL 值並用它替換舊值以指向“CLEARDB_DATABASE_URL”的 ENV var 中的新數據源連接,一旦我再次重新啟動我的測功機,它就能夠成功部署連接。

所以例子:

mysql://b3b4204cdxxxxxx:password@us-xxxx-xxxx-03.cleardb.com/heroku_XXXXXXXXXXXXX?reconnect=true

變成了:

mysql://b3b4204cdxxxxxx:password@us-mm-xxx-xxxxxxxxxx.g5.cleardb.net/heroku_XXXXXXXXXXXXX?reconnect=true

同樣,即使我的源代碼沒有使用它——它必須被更新

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM