java連接mysql通過ssh的簡單介紹

本文目錄一覽:

怎樣用java連接mysql

用java連接mysql步驟:

下面代碼是使用jdbc直接鏈接mysql的操作,鏈接方式與SQL SERVER類似,區別在於載入的驅動不同,url的設置也有點區別,用戶名、密碼、埠號這些設置都類似

執行腳本返回的結果,可以看出java成功鏈接上mysql並獲取到返回值

mysql-connector-java-5.1.26-bin.jar是java鏈接mysql使用的jar包,與SQL SERVER鏈接也有專門的jar包,jar包中包含了java鏈接mysql所用到的函數驅動等等,所有的jar包都是放到web工程lib目錄下

如果工程是整合在ssh下,一般情況下都會有一個properties文件,該文件配置了資料庫鏈接常用的命令,下圖是mysql中的配置

使用spring框架下進行的測試,結果可以成功執行,其實無論是sql server還是mysql還是其他的資料庫,基本功能都一樣,只是語法結構有所區別,java在調用的過程中大部分功能只要切換了資料庫鏈接命令就可以公用,如果系統架構設計的足夠好,當我們切換資料庫的時候,應用程序是不用調整就能兼容的

怎麼通過SSH連接Mysql資料庫

1.打開UE,點擊文件——Ftp/Telent——SSH/Telent賬號管理器

在沒有資料庫賬號時,先添加一個,如果有,可以跳過此步

伺服器輸入地址(鏈接IP地址),協議選擇SSH,用戶名輸入資料庫的用戶名,密碼是資料庫鏈接密碼(就是建立一個直接到資料庫用戶的鏈接)

2.點擊文件——Ftp/Telent——SSH/Telent控制台,選擇要鏈接的賬號,點擊鏈接

3.鏈接後,輸入以下命令:db2 connect to uibs ,此處uibs為資料庫名

4.要執行sql命令,輸入:db2 “你要執行的sql語句”,如:

db2 “select count(*) from banknotice”

注意,在這裡執行的sql命令,最好是查詢條數的,如果是查詢記錄,還會返回的內容的亂碼,可能與編碼有關

相關的linux命令:

ls 顯示當前目錄下的所有文件夾

Cd 文件夾 進入到某個文件夾

Cd .. 返回上級目錄,注意字母和..之間有空格

JAVA怎麼通過SSH隧道連接資料庫查詢

在界面中點擊【新建】按鈕,在Mysql下填寫Mysql資料庫的ip地址、用戶名、密碼、埠(默認在3306)就好,資料庫名稱。這裡跟普通的連接資料庫的方法一致。

這個時候讀者可以點擊一下【測試連接】,這個時候點擊測試連接去連接資料庫是不會成功的,因為資料庫配置了SSH訪問。如下圖:

配置完成Mysql信息後,在旁邊選擇【SSH】

點擊SSH後會彈出一個提示框,點擊提示框的【確定】按鈕。

點擊後勾選「使用SSH隧道」

勾選後下方的配置信息由勾選前的灰色變更為白色可輸入狀態,在這裡配置訪問的SSH主機地址、用戶名、密碼或者公共密匙。

配置完成後來測試配置連接是否正確,點擊【測試連接】由於已經配置了正確的SSH訪問,這次測試連接成功了。

最後就可以點擊界面下方的【連接】按鈕,連接上資料庫,進行操作了。

java ssh mysql資料庫連接失效,重啟java工程。如何解決?

1、一般的解決方法大多是在資料庫連接字元串中增加「autoReconnect=true 」選項。但是這隻對mysql4以前的版本有效。在最新的mysql中是無效的。其實要解決這個問題也有一個簡單的方法,就是修改mysql的啟動參數。預設情況下mysql的timeout時間是28800秒,正好是8小時,增加一個0就可以了。

同理也可以在” my.ini”文件中增加此參數。

mysqld-nt –default-table-type=innodb –interactive_timeout=288000

2、從根源入手,設置mysql的wait_timeout為31536000(一年)。

mysql show variables;

| wait_timeout | 28800

| interactive_timeout | 28800

” my.ini”文件中修改此參數

[mysqld]

wait_timeout=31536000

interactive_timeout=31536000

重啟服務,OK!

如何通過SSH通道來訪問MySQL

許多時候當要使用Mysql時,會遇到如下情況:

1. 信息比較重要,希望通信被加密。

2. 一些埠,比如3306埠,被路由器禁用。

對第一個問題的一個比較直接的解決辦法就是更改mysql的代碼,或者是使用一些證書,不過這種辦法顯然不是很簡單。

這裡要介紹另外一種方法,就是利用SSH通道來連接遠程的Mysql,方法相當簡單。

一 建立SSH通道

只需要在本地鍵入如下命令:

ssh -fNg -L 3307:127.0.0.1:3306 myuser@remotehost.com

The command tells ssh to log in to remotehost.com as myuser, go into the background (-f) and not execute any remote command (-N), and set up port-forwarding (-L localport:localhost:remoteport ). In this case, we forward port 3307 on localhost to port 3306 on remotehost.com.

二 連接Mysql

現在,你就可以通過本地連接遠程的資料庫了,就像訪問本地的資料庫一樣。

mysql -h 127.0.0.1 -P 3307 -u dbuser -p db

The command tells the local MySQL client to connect to localhost port 3307 (which is forwarded via ssh to remotehost.com:3306). The exchange of data between client and server is now sent over the encrypted ssh connection.

或者用Mysql Query Brower來訪問Client的3307埠。

類似的,用PHP訪問:

?php

$smysql = mysql_connect( “127.0.0.1:3307”, “dbuser”, “PASS” );

mysql_select_db( “db”, $smysql );

?

Making It A Daemon

A quick and dirty way to make sure the connection runs on startup and respawns on failure is to add it to /etc/inittab and have the init process (the, uh, kernel) keep it going.

Add the following to /etc/inittab on each client:

sm:345:respawn:/usr/bin/ssh -Ng -L 3307:127.0.0.1:3306 myuser@remotehost.com

And that should be all you need to do. Send init the HUP signal ( kill -HUP 1 ) to make it reload the configuration. To turn it off, comment out the line and HUP init again.

請採納。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/232301.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-11 12:49
下一篇 2024-12-11 12:49

相關推薦

  • 如何修改mysql的埠號

    本文將介紹如何修改mysql的埠號,方便開發者根據實際需求配置對應埠號。 一、為什麼需要修改mysql埠號 默認情況下,mysql使用的埠號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • Python簡單數學計算

    本文將從多個方面介紹Python的簡單數學計算,包括基礎運算符、函數、庫以及實際應用場景。 一、基礎運算符 Python提供了基礎的算術運算符,包括加(+)、減(-)、乘(*)、除…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論