標籤:特權 nec 設定許可權 錯誤 under 用戶端 auth 設定 png
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連接埠的目的。
使用命令如下:
ssh -NCPf [email protected] -L 3388:192.168.189.139:3306
參數解釋
-C 使用壓縮功能,是可選的,加快速度。
-P 用一個非特權連接埠進行出去的串連。
-f 一旦SSH完成認證並建立port forwarding,則轉入後台運行。
-N 不執行遠程命令。該參數在只開啟轉送連接埠時很有用(V2版本SSH支援)
這裡的[email protected] 是登陸mysql伺服器的SSH使用者名稱和IP地址-L 3388:192.168.189.139:3306
這個參數的意思是說在本機開放3388連接埠到192.168.189.139:3306連接埠的映射,也就是說隧道的入口為3388出口為mysql伺服器的3306
如果出現錯誤:
錯誤是:The authenticity of host 192.168.0.xxx can‘t be established.
執行ssh -o StrictHostKeyChecking=no 192.168.0.xxx 就OK
ps:這個好像是用來避免 輸入第一次 執行ssh 要求收入yes/no 用的。
執行完後查看本地串連情況
[[email protected] ~]# 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串連情況
[[email protected] ~]# 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伺服器上為本機伺服器賦權(許可權自己定)
GRANT SELECT ON *.* TO ‘fc‘@‘192.168.189.133‘ IDENTIFIED BY ‘111111‘;
通過隧道在本地串連MySQL伺服器
[[email protected] ~]# 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中
ssh -NCPf [email protected] -L 3388:192.168.189.139:3306
二、windows平台的用戶端串連linux上的Mysql伺服器
具體設定參考http://holy2010.blog.51cto.com/1086044/518431
用navicat for myql 串連Linux上的mysql
方法很簡單只要在這個軟體佈建ssh這個功能就可以
general選項中填寫本機資料庫的資訊
SSH選項中Use ssh Tunnel 填寫遠程Linux的賬戶和密碼就可以,ssh的連接埠 22
Test connection
本文出自 “Holy” 部落格,請務必保留此出處http://holy2010.blog.51cto.com/1086044/518499
--------------------------------------------------------------------------------------------------------
個人總結:
主機:mysql資料庫
副機:建立ssh隧道
本機:navicat for mysql 訪問主機資料庫
1.主機上登入mysql設定許可權,設定副機ip的許可權(參考:http://www.cnblogs.com/hfdp/p/6088288.html)
2.副機上建ssh隧道到主機
3.本地訪問:
提交副機登入主機的資料庫地址連接埠賬戶密碼等,和登入副機的ip賬戶密碼(連接埠為22,副機到主機的ssh隧道連接埠才是3388)
mysql+ssh 配置(轉載)