一、直连方式(通过3306端口)

1.概述

开启服务器的3306端口,添加MySQL远程访问用户,可以实现直接连接远程MySQL的功能,效果就是直接将localhost换成服务器公网IP就能访问。

2. 环境准备

本地:Navicat

服务器:阿里云ECS、安装好JDK、MySQL

3.操作及讲解

(1)开放服务器安全组中3306端口

打开云服务器的3306端口是存在一定的安全风险的,默认安全组是不允许外部访问3306端口的。

登录阿里云–》控制台–》找到自己的云服务器ECS–》进去后点击实例ID

点击本实例安全组–》选择配置规则–》添加一条配置信息

(2)添加MySQL远程访问用户

在安装好的MySQL数据库中存在一个mysql库,库里面有一个user表,该表存储了mysql的用户信息,默认情况下是这样的[外链

只允许本地通过root账户登录(不关注另外两个),我们现在添加一个能够远程访问的用户既Host为%的用户。

通过shell工具连接服务器,登录mysql运行以下命令

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

添加一个能够冲任意IP登录的账号,账号为root,密码为123456。第二句为刷新权限,不刷新不管用。

(3)通过本地Navicat连接远程MySQL数据库

上面我们配置好了安全组访问控制,配置了MySQL远程登录用户,接下来我们就可以直接远程访问MySQL了。

连接名:随意

主机:服务器IP地址

端口:3306

用户名:root

密码:123456

对比本地数据库只更改了一个IP地址就能够连接了。项目也可以直接将连接信息中localhost更改成IP地址直接访问云端的数据库。

二、使用SSH通道

1.概述

开放3306端口存在一定的安全风险,项目和数据库存放于一个服务器,不需要通过公网IP访问,开发时本地又需要连接数据库,可以使用SSH通道连接的方式连接数据库,既本地通过服务器账号密码连接服务器,然后连接MySQL,对于MySQL来说这就是一个本地的访问连接。

2.环境准备

本地:Navicat

服务器:阿里云ECS、安装好JDK、MySQL

3.操作及讲解

本方法不需要开发安全组端口,不需要为MySQL添加远程访问用户。使用SSH通道使用服务器登录账号连接MySQL。

(1)配置SSH连接

连接时选中SSH选项,选中使用SSH通道

主机:服务器公网IP

端口:22(SSH连接端口,阿里云安全组默认放开)

用户名:登录服务器系统的用户名(注意不是MySQL的)

密码:登录服务器系统的密码(注意不是MySQL的)

以上行为相当于shell连接上了服务器

(2)配置数据库连接信息

常规操作,

主机名:随意。

主机:localhost

端口:3306

用户名:mysql用户名

密码:mysql密码

因为已经SSH连接了服务器,此处相当于本地连接MySQL。

Navicat给的这个图很形象,Navicat连接服务器,再在内部直接连接数据库

如果对你有帮助,不要忘了点个赞呦,有问题可以提问,博主每天都会来逛逛的。

Navicate 连接阿里云MySQL(两种方式及原理讲解)的更多相关文章

  1. 网络协议 finally{ return问题 注入问题 jdbc注册驱动问题 PreparedStatement 连接池目的 1.2.1DBCP连接池 C3P0连接池 MYSQL两种方式进行实物管理 JDBC事务 DBUtils事务 ThreadLocal 事务特性 并发访问 隔离级别

    1.1.1 API详解:注册驱动 DriverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用 原因有2个: >导致驱动被注册2 ...

  2. Eclipse通过jdbc连接sqlserver2008数据库的两种方式

    数据库登录身份验证方式有两种     其中服务器名称即为安装SQLServer2008的电脑,充当数据库服务器,在笔者这里就是自己的电脑名称. 身份验证方式有两种:windows身份验证和SQLSer ...

  3. 本地DataGrip连接阿里云MySQL

    1.阿里云上开通MySQL端口 2.MySQL上的设置 1⃣️mysql -uroot -p2⃣️create user 'usrabc'@'%' identified by 'usrabc'; 3. ...

  4. C#+VisionPro连接相机获取图像的两种方式

    两种比较常用的方式. C#直接连接相机获取图像(GIGE) 在获取图像前,需要先创建一个相机对象,再使用这个相机对象的Acquire方法拍摄照片. ICogAcqFifo macqfifo;//定义相 ...

  5. navicat连接阿里云mysql数据库服务器遇到的1130等相关问题

    最近搭建自己的博客网站的时候使用了阿里云的云服务器ESC,搭建了一个mysql数据库,在windows下使用navicat连接mysql的时候,总是连接不上,出现了1130的问题等等错误信息. 下面将 ...

  6. 【FineBI】FineBI连接阿里云mysql教程

    因为某些原因需要查看数据信息,之前连接成功一次,今天软件更新了以后发现连接信息丢. 又重新折腾了一下. 主要有2个地方: 1.查看阿里云数据库外网连接地址:打开云数据库RDS-实例列表-管理-数据库连 ...

  7. Dynamics CRM 非声明验证方式下连接组织服务的两种方式的性能测试

    今天看了勇哥的博文"http://luoyong0201.blog.163.com/blog/static/1129305201510153391392/",又认识到了一种新的连接 ...

  8. 使用Navicat连接阿里云mysql报错10061

    1.添加一个远程访问账号admin mysql> use mysql; mysql> GRANT ALL ON *.* TO 账户@'%' IDENTIFIED BY '密码' WITH ...

  9. python连接redis数据库的两种方式

    代码: # __author__ = 'STEVEN' import redis # 方式1,直接连接 # r = redis.Redis(host='192.168.43.22',port=6379 ...

随机推荐

  1. Java学习之注解篇

    Java学习之注解篇 0x00 前言 续上篇文章,这篇文章就来写一下注解的相关内容. 0x01 注解概述 Java注解(Annotation)又称Java标注,是JDK5.0约会的一种注释机制. 和J ...

  2. 使用python对工作簿每个sheet表进行数据可视化展示(本案例是从第2个sheet开始循环读取也就是索引为1的表)

    # 导入相关模块from pyecharts.charts import Barfrom pyecharts import options as optsfrom pyecharts.charts i ...

  3. ZooKeeper 分布式锁 Curator 源码 04:分布式信号量和互斥锁

    前言 分布式信号量,之前在 Redisson 中也介绍过,Redisson 的信号量是将计数维护在 Redis 中的,那现在来看一下 Curator 是如何基于 ZooKeeper 实现信号量的. 使 ...

  4. springboot-5-持久层技术

    整合mybatis 流程: 导入依赖: 除了mybaits还有mysql和jdbc依赖 <!--mybatis--> <dependency> <groupId>o ...

  5. ubuntu16.04细节设置

    1.查看无线网卡名称 $ iwconfig ------------------ lo no wireless extensions. eth1 no wireless extensions. eth ...

  6. C++第五十二篇 -- 多线程之消息传递

    主线程向子线程发送消息 参考链接:https://www.cnblogs.com/ranjiewen/p/5729539.html 1. 创建线程语句 HANDLE hThread; DWORD dw ...

  7. WEB安全新玩法 [10] 防范竞争条件支付漏洞

    服务器端业务逻辑,特别是涉及数据库读写时,存在着关键步骤的时序问题,如果设计或代码编写不当就可能存在竞争条件漏洞.攻击者可以利用多线程并发技术,在数据库的余额字段更新之前,同时发起多次兑换积分或购买商 ...

  8. 浏览器WEB Browser 常识

    浏览器WEB Browser 浏览器发展史 浏览器诞生与发展 浏览器的诞生 早期浏览器 Netscape Internet Explorer 与浏览器战争 chrome的崛起 时代之泪 IE浏览器终成 ...

  9. 01MATLAB导论

    MATLAB语言的主要功能 数值计算 符号计算 图形绘制 程序流程控制 工具箱 课程的学习目标 要求理解MATLAB功能实现的数学背景与算法原理 掌握利用MATLAB进行问题求解的基本规律 能够利用M ...

  10. 使用javah 给.class类编译jni_helloworld.h文件头

    第一步,在idea中,编写java文件,并且编译 package jni; public class HelloWorld { static { System.loadLibrary("He ...