原标题:详解如何通过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访问:

$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.返回搜狐,查看更多

责任编辑:

mysql ssh通道_详解如何通过SSH通道来访问MySQL相关推荐

  1. qt4.7 mysql 6.3 版本_详解Qt 4.7编译和访问Mysql驱动

    Qt4.7编译和访问Mysql驱动是本文要介绍的内容,不多说,我们来看内容.今天摸索了一上午,终于用qt连上mysql了 1.安装一个mysql5.0以上版本*** 要求:(1)安装路径不要有空格和点 ...

  2. mysql sql组合_详解mysql 组合查询

    使用UNION 多数SQL查询都只包含一个或多个表中返回数据的单条SELECT语句.MySQL也允许执行多个查询(多条SELECT语句),并将结果作为单个查询结果集返回.这些组合查询通常称为并(uni ...

  3. mysql 数据分组_详解MySQL 数据分组

    创建分组 分组是在select语句中的group by 子句中建立的. 例: select vend_id, count(*) as num_prods from products group by ...

  4. java mysql 自动提交_详解MySQL与Spring的自动提交(autocommit)

    1 MySQL的autocommit设置 MySQL默认是开启自动提交的,即每一条DML(增删改)语句都会被作为一个单独的事务进行隐式提交.如果修改为关闭状态,则执行DML语句之后要手动提交 才能生效 ...

  5. mysql 日期比较_详解Mysql中日期比较大小的方法

    假如有个表product有个字段add_time,它的数据类型为datetime,有人可能会这样写sql: 代码如下 select * from product where add_time = '2 ...

  6. mysql 事务 for update,mysql事务锁_详解mysql 锁表 for update

    摘要 腾兴网为您分享:详解mysql 锁表 for update,智慧农业,真还赚,悦读小说,学习帮等软件知识,以及电池管家,三国群英传3,userland,运满满货主版,王者荣耀,简单3d动画,嘉丽 ...

  7. mysql重做日志_详解MySQL 重做日志(redo log)与回滚日志(undo logo)

    前言: 前面文章讲述了 MySQL 系统中常见的几种日志,其实还有事务相关日志 redo log 和 undo log 没有介绍.相对于其他几种日志而言, redo log 和 undo log 是更 ...

  8. navicat for mysql命令行_详解 Navicat for MySQL 命令工具

    Navicat for MySQL是一套管理和开发MySQL或MariaDB的理想解决方案,支持单一程序,可同时连接到MySQL和MariaDB.这个功能齐备的前端软件为数据库管理.开发和维护提供了直 ...

  9. mysql 魔术设置_详解php魔术方法(Magic methods)的使用方法

    PHP中把以两个下划线__开头的方法称为魔术方法,这些方法在PHP中充当了举足轻重的作用. 魔术方法包括: __construct(),类的构造函数 __destruct(),类的析构函数 __cal ...

最新文章

  1. SCVMM2012 SP1 之虚拟机模板的创建
  2. 模块计算机型x86yu,ldd3学习之九:与硬件通信
  3. C语言实现字符串匹配的Rabin-Karp算法(附完整源码)
  4. 理解阻塞到底是什么回事
  5. 为什么我要选择erlang+go进行server架构(2)
  6. c++ list容器获取第n给元素_Java总结之容器家族--Collection*
  7. 远程桌面服务器无法复制粘贴了怎么解决
  8. visio 2003 for enterprice architects 不需要安装VS2005,直接安装的方法
  9. 使用Matlab计算大地测量学中的子午线弧长
  10. 电磁场与电磁波实验:仿真计算介质板的电磁参数
  11. Atitit..组件化事件化的编程模型--(2)---------Web datagridview 服务器端控件的实现原理and总结
  12. 开机黑屏显示html,开机黑屏显示“This Product is covered by”解决方法
  13. Python中使用seek方法来移动文件指针的位置
  14. linux系统卸载git,linux卸载gitlab
  15. linux 设置深信服easyconnect 代理
  16. PDF阅读软件哪个好用?思路提供
  17. 获得淘系商品详情展示
  18. C++之详解coredump
  19. php数组和链表的区别,什么是链表?链表与数组的区别?
  20. 用python实现生成验证码图片

热门文章

  1. Apache Spark 内存管理详解
  2. 【转】Android实例剖析笔记(二)--用实例讲解Andriod的开发过程,以NotesList为实例介绍Android的菜单机制...
  3. [常微分方程]Lecture 2: 欧拉数值方法及推广
  4. Linux系统编程(18)——正则表达式实用举例
  5. 使用用WCF中的双工(Duplex)模式将广告图片推送到每个Winform客户端机子上
  6. (TOJ1248)Encoding
  7. DirectX SDK (June 2010)安装遇到Error Code S1023
  8. C#将DBGrid中数据导出为Excel的很小很强大的代码
  9. 全面分析男性护肤三大误区 - 生活至上,美容至尚!
  10. Nginx 实现封杀恶意访问