背景
同事做的功能最近出現一個數據問題,因為涉及的服務多,很是苦惱,想直接連接到正式庫調試下程序,無奈正式庫是內網,找到我問我能不能有什麼辦法連到正式庫,我給同事介紹了Jsch,幫助同事順利的連上正式庫。
前言
當程序出現bug時,有經驗的我們都知道,直接本地連接生產資料庫調試是最方便的。但是實際生產中,我們本地是不能直接訪問到正式資料庫的,為了安全,我們是不會開放資料庫的埠給外網的(那些開放資料庫埠給外網的快快懸崖勒馬吧)。通常我們要連接資料庫分析數據,我們有以下幾種辦法:
1 登陸堡壘機,然後通過堡壘機,連接資料庫進行查看數據
2 讓其他有許可權的人幫忙導出數據(這種比價麻煩)
3 直接登錄資料庫伺服器(這個要求級別比價高,一般開發是沒有許可權的)
大部分的時候我們都會通過堡壘機,然後連接資料庫,如圖所示。

但是這樣還是不能在代碼中直連調試,可不可以通過代碼連接堡壘機呢?
代碼直連堡壘機
1 引入jar包
<dependency>
<groupId>com.jcraft</groupId>
<artifactId>jsch</artifactId>
<version>0.1.55</version>
</dependency>2 登錄堡壘機,連接到遠程內網資料庫

3 配置正式伺服器的MySQL

將本地的埠,轉發到遠程的資料庫埠。
測試
通過堡壘機登錄後,可以順利地訪問到到遠程mysql內網埠。

總結
雖然從此以後調試終於可以直連正式資料庫調試了,但是作為專業的我們,一定不能隨便連接正式庫,調試的時候如果是非查詢服務,一定要保證事務的一致性,特別是設計分散式事務時,一定要處理好,一般盡量少用調試非查詢服務。
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/255813.html
微信掃一掃
支付寶掃一掃