zoukankan      html  css  js  c++  java
  • 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端口的目的。
    使用命令如下:
    ssh -NCPf root@192.168.189.139 -L 3388:192.168.189.139:3306

    参数解释

    -C    使用压缩功能,是可选的,加快速度。 
    -P    用一个非特权端口进行出去的连接。 
    -f    一旦SSH完成认证并建立port forwarding,则转入后台运行。 
    -N    不执行远程命令。该参数在只打开转发端口时很有用(V2版本SSH支持)

    这里的root@192.168.189.139 是登陆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 用的。


    执行完后查看本地连接情况 
    [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服务器上为本地服务器赋权(权限自己定)
    GRANT SELECT ON *.* TO 'fc'@'192.168.189.133' IDENTIFIED BY '111111';

    通过隧道在本地连接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中
    ssh -NCPf root@192.168.189.139 -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)

  • 相关阅读:
    线性回归模型练习
    《代码整洁之道》读书笔记五
    第八周总结
    第七周总结
    《代码整洁之道》读书笔记四
    《代码整洁之道》读书笔记三
    第六周总结
    《代码整洁之道》读书笔记二
    第五周总结
    HDFS的JavaAPI操作
  • 原文地址:https://www.cnblogs.com/hfdp/p/6089811.html
Copyright © 2011-2022 走看看