Mysql+ssh配置
一、Linux平台間mysql+ssh配置
本機位址為:192.168.189.133
mysql伺服器位址為:192.168.189.139
linux指令行下使用ssh指令建立SSH隧道
本機上生成ssh public key并複制給Mysql伺服器
利用 ssh-keygen 指令,生成本機id_rsa.pub檔案
# ssh-keygen 連續回車生成id_rsa.pub 檔案
将id_rsa.pub檔案複制到mysql伺服器中
# ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.189.139
在本機上挖隧道
利用ssh指令在本機開個3388的端口,這個端口為隧道的入口端口,通過在本機連接配接這個端口來達到連接配接mysql伺服器3306端口的目的。
使用指令如下:
參數解釋
-C 使用壓縮功能,是可選的,加快速度。
-P 用一個非特權端口進行出去的連接配接。
-f 一旦SSH完成認證并建立port forwarding,則轉入背景運作。
-N 不執行遠端指令。該參數在隻打開轉發端口時很有用(V2版本SSH支援)
這個參數的意思是說在本機開放3388端口到192.168.189.139:3306端口的映射,也就是說隧道的入口為3388出口為mysql伺服器的3306
執行完後檢視本地連接配接情況
[root@localhost ~]# netstat -tulnp | grep 3388
tcp 0 0 127.0.0.1:3388 0.0.0.0:* LISTEN 3076/ssh
tcp 0 0 ::1:3388 :::* LISTEN 3076/ssh
檢視本機與mysql伺服器的ssh連接配接情況
[root@localhost ~]# netstat -an | grep 192.168.189.139
tcp 0 0 192.168.189.133:43489 192.168.189.139:22 ESTABLISHED
通過這兩條指令可知,執行完指令之後,本機與mysql伺服器就建立起了ssh連接配接,且開放了3388端口。
需要在Mysql伺服器上為本地伺服器賦權(權限自己定)
通過隧道在本地連接配接MySQL伺服器
[root@localhost ~]# mysql -ufc -P 3388 -h 127.0.0.1 -p111111
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 30
Server version: 5.1.48-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
| information_schema |
| mysql |
| test |
4 rows in set (0.00 sec)
測試成功
由于伺服器重新開機隧道會失效
這項開通本地隧道需要加入/etc/rc.d/rc.local中
二、windows平台的用戶端連接配接linux上的Mysql伺服器
用navicat for myql 連接配接Linux上的mysql
方法很簡單隻要在這個軟體設定ssh這個功能就可以
general選項中填寫本地資料庫的資訊
SSH選項中Use ssh Tunnel 填寫遠端Linux的賬戶和密碼就可以,ssh的端口 22
Test connection
本文轉自 holy2009 51CTO部落格,原文連結:http://blog.51cto.com/holy2010/518499