Mysql SSH隧道连接使用的基本步骤

前言

为了安全,mysql的root用户只本机登录,不对外网进行授权访问,此时可通过SSH隧道连接mysql数据库。以下为配置Mysql SSH隧道连接的基本步骤。

下面话不多说了,来一起看看详细的步骤吧

删除远程登录

登录mysql:

 mysql -uroot -p

查看用户开放的访问权限:

select user, host from mysql.user;

删除不需要的访问权限,比如:

delete from mysql.user where user='root' and host='%';
flush privileges;

再次查询,核实是否删除成功。

建立隧道

服务器的登录可通过用户名密码和RSA秘钥两种方式,建议使用RAS秘钥形式,将本机的id_rsa.pub内容放置于服务器的~/.ssh/authorized_keys中,具体怎么生成RSA秘钥,不在这里赘述。

单独开一个窗口,修改以下命令对应的ip和端口并执行:

ssh -NCPf root@192.168.99.52 -L 3388:127.0.0.1:3306

参数解释:

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

root@192.168.99.52是登陆mysql服务器的SSH用户名和IP地址。-L 3388:127.0.0.1:3306表示在本机开放3388端口到mysql服务器的127.0.0.1:3306端口的映射。其中127.0.0.1也可以是mysql所在服务器的内网ip或外网ip。

然后,通过mysql工具,输入对应的用户名密码,即可登录。注意登录时,选择的host地址为localhost或127.0.0.1。同时,在mysql数据库中开放对应ip的访问权限。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

(0)

相关推荐

  • 内网ssh/mysql登录缓慢的解决方法

    常公司的开发环境都会布置在内网,然后会有公共的服务器让大家在上面进行开发,测试,所以经常会有ssh连接服务器,或者本地mysql client连接服务器的需求,我个人经历过的公司经常会发生ssh/mysql连接公共服务器非常慢的现象,这是由于ssh服务和mysql服务默认都会在登录时进行DNS反向解析的过程,而内网通常我们没有配备DNS服务,那么这时就只能等这些服务自己超时,然后才能允许我们的登录通过,解决方案也很简单,只要关闭相应服务的解析就行了. 首先是ssh,如下: /etc/ssh/ss

  • 利用ssh tunnel链接mysql服务器的方法

    前言 在某些情况下,我们只能知道数据库的内网地址,无法通过内网连接,但是我们可以登录同一个内网的其他机器,并且这些机器能够在内网访问数据库,那么我们可以通过ssh tunnel的方法来访问数据库. 用法 ssh tunnel的使用方法十分简单,具体格式如下: ssh -L [local port]:[remote host]:[remote port] [username]@[remote host] 使用-L的方式,将对本地端口的访问,通过ssh tunnel,forward到远程主机的端口上

  • 在CentOS VPS上通过SSH安装 MySQL的方法图解

    输入yum install mysql-server 按Y继续 安装完成,设置开机启动Mysql,输入 chkconfig --levels 235 mysqld on 然后启动tomcat,输入service mysqld start 启动完毕,然后登录MYsql设置密码 输入set password for 'root'@'localhost' = password('12345678');来设置密码 至此,mysql安装完毕!然后创建数据库,首先用show databases;查看数据库

  • Mysql SSH隧道连接使用的基本步骤

    前言 为了安全,mysql的root用户只本机登录,不对外网进行授权访问,此时可通过SSH隧道连接mysql数据库.以下为配置Mysql SSH隧道连接的基本步骤. 下面话不多说了,来一起看看详细的步骤吧 删除远程登录 登录mysql: mysql -uroot -p 查看用户开放的访问权限: select user, host from mysql.user; 删除不需要的访问权限,比如: delete from mysql.user where user='root' and host='%

  • python3 使用ssh隧道连接mysql的操作

    我就废话不多说了,大家还是直接看代码吧~ import pymysql from sshtunnel import SSHTunnelForwarder import pymysql.cursors #以dict形式输出 def dbconnect_ssh(ssh_host,ssh_port,keyfile,ssh_user,db_host,db_name,sql,db_port,db_user,db_passwd): with SSHTunnelForwarder( (ssh_host, ss

  • MySQL数据库远程连接开启方法

    第一中方法:比较详细以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL 数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是MySQL 数据库开启远程连接的时机操作流程. 1.d:\MySQL\bin\>MySQL -h localhost -u root 这样应该可以进入MySQL服务器 复制代码 代码如下: MySQL>update user set host = '%' where user = 'root'; MySQL&g

  • Go语言利用ssh连接服务器的方法步骤

    学习了Go语言后,打算利用最近比较空一点,写一个前端部署工具,不需要每次都复制粘贴的麻烦,需要完成部署的第一步就需要连接远程服务器 打开 ssh server 首先我们想要利用ssh连接服务器的前提是服务器打开了ssh server,ssh 分为client和server端 ,如果打开了client可以连接远程服务器,打开了server就可以被连接. 因为linux网上教程很多,windows比较少,所以这里只写windows版本的, 首先我们一般用Open SSH这个工具打开服务,window

  • Vscode的SSH插件远程连接Linux的实现步骤

    最近在B站上看到Vscode可以远程连接Linux, 不仅有与linux一模一样的终端,而且写代码很舒服,所以尝试了一下远程连接. 首先,要先在Vscode中安装 “Remote-SSH”扩展(插件), 安装好之后,在工具栏会出现这个图标: 之后点击“+”,添加远程主机: 点击之后,会弹出一个框,要我们输入待连接的远程主机的用户名和IP地址:按格式输入,输入之后,回车键确认 如何查看Linux的IP地址: 方法一:进入Linux的设置(Setting) 方法二:在linux的终端输入一条指令 $

  • Python基于ssh远程连接Mysql数据库操作

    目录 背景 安装支持库 连接Mysql 自定义查询函数 背景 如果需要访问远程服务器的Mysql数据库,但是该Mysql数据库为了安全期间,安全措施设置为只允许本地连接(也就是你需要登录到该台服务器才能使用),其他远程连接是不可以直接访问,并且相应的端口也做了修改,那么就需要基于ssh来连接该数据库.这种方式连接数据库与Navicat里面界面化基于ssh连接一样. Navicat 连接数据库 安装支持库 如果要连接Mysql,首先需要安装pymysql pip install pymysql 安

  • mysql允许远程连接的方法

    一.概述  本文主要介绍通过federated存储引擎建立远程连接表 测试环境:mysql 5.6.21 二.步骤 开启federated存储引擎 先查看federated存储引擎存储引擎是否启用 SHOW ENGINES ; 默认mysql是没有开启federated存储引擎,我这里因为已经配置了. 开启federated存储引擎只需要在my.cnf文件中增加'federated'就可以. 创建远程连接表 mysql配置远程连接必须在本地创建federated存储引擎的表,配置远程连接参数,本

  • python利用跳板机ssh远程连接redis的方法

    公司服务器的mysql和redis连接都需要有跳板机,网上有很多python ssh远程连接mysql的,那天我研究了下,利用sshtunnel模块连接上了redis,具体如下: from sshtunnel import SSHTunnelForwarder # ssh连接库 import redis # redis模块 server = SSHTunnelForwarder( ssh_address_or_host= , # ssh地址 ssh_username= , # ssh连接的用户名

  • python 通过SSHTunnelForwarder隧道连接redis的方法

    背景:我司Redis服务器使用的亚马逊服务,本地需要通过跳板机,然后才有权限访问Redis服务. 连接原理:使用SSHTunnelForwarder模块,通过本地22端口ssh到跳板机,然后本地开启一个转发端口给跳板机远程Redis服务使用. 两种思路: 1.通过SSHTunnelForwarder,paramiko模块,先ssh到跳板机,然后在跳板机上(或者内部服务器上),获取到权限,然后远程Redis. 2.使用SSHTunnelForwarder模块,通过本地22端口ssh到跳板机,然后本

  • mysql 判断是否为子集的方法步骤

    一.问题 故事起源于一个查询错漏率的报表:有两个查询结果,分别是报告已经添加的项目和报告应该添加的项目,求报告无遗漏率 何为无遗漏?即,应该添加的项目已经被全部添加 报告无遗漏率也就是无遗漏报告数占报告总数的比率 这里以两个报告示例(分别是已全部添加和有遗漏的报告) 首先,查出第一个结果--报告应该添加的项目 SELECT r.id AS 报告ID,m.project_id 应添加项目 FROM report r INNER JOIN application a ON r.app_id=a.id

随机推荐