本文目錄一覽:
- 1、怎樣用java連接mysql
- 2、怎麼通過SSH連接Mysql數據庫
- 3、JAVA怎麼通過SSH隧道連接數據庫查詢
- 4、java ssh mysql數據庫連接失效,重啟java工程。如何解決?
- 5、如何通過SSH通道來訪問MySQL
怎樣用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-hant/n/232301.html