天天看點

Mysql+ssh配置

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

繼續閱讀