当前位置: 首页 > news >正文

SpringBoot项目连接linux服务器数据库两种解决方法(linux直接开放端口访问本机通过SSH协议访问,以mysql为例)

最近找个springboot脚手架重新熟悉一下springboot相关框架的东西,结果发现好像项目还不能直接像数据库GUI工具一样填几个SSH参数就可以了,于是就给他再整一下看看如何解决

linux开放3306(可修改)端口直接访问

此方法较为方便,无需修改代码,改好后只要把springboot项目中的mysql访问地址改成对应的linux主机ip即可
在这里插入图片描述
在使用GUI数据库工具时我们可以发现刚刚安装了数据库使用ssh通道就可以直接连接了,连基本的配置权限过程都冇,这是因为我们通过SSH连接到linux服务器相当于是远程控制linux主机,并使用linux主机的ip进行数据库操作,并不是我们本机ip直接进行操作的,所以mysql服务器识别的还是localhost(等价于127.0.0.1),是默认配置放行的,并且官方其实也是推荐只留localhost的,不过此处就是提供一种方法供选择。

(1)首先开放mysql的非localhost访问权限,允许非本地ip进行访问
使用root(或者其他高权限用户)访问mysql库内的user表,将对应需要修改的开放对外访问的ip的用户中的host字段修改为%即可,表示通配所有ip进行放行操作。
在这里插入图片描述
另外如果准备开放其他端口而不是3306的话,需要到/etc/my.cnf处进行添加 port=***即可
修改完成后重启mysql数据库服务或者直接刷新权限

mysql -u root -d
flush privileges;

systemctl restart mysqld

(2)开放linux防火墙
当我们有购买过云服务器的话,就可以发现我们需要在外部进行ip直接连接的话,需要在端口控制处添加对应的端口以供外部连接(当然也会配套一些DDOS防卫,流量控制一类的配套服务),在虚拟机的话也是同样需要开启对应的防火墙。
在网上搜寻了一大堆centos/rhel开放linux端口的文章,大部分都是让进行iptables配置,但是按照给出的文件路径,根本没有那个配置文件(/etc/sysconfig/iptables),我:?
后来才发现一位大佬的博客帮忙解了惑 https://www.cnblogs.com/AllWjw/p/15761697.html
总之就是每个centos/rhel大版本防火墙服务不尽相同,需要分开讨论,现在基本上主流Centos7所以使用的是firewalld服务
在这里插入图片描述

firewall-cmd --state ##查看防火墙状态,是否是running
firewall-cmd --add-port=3306/tcp --permanent ##永久添加3306端口
firewall-cmd --reload ##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --list-ports ##查看当前开放的端口

在这里插入图片描述

按顺序执行下来即可,看起来对应的端口已经正常开放了。
先用navicat小试一下看看
在这里插入图片描述
测试直接连接成功,接下来走个springbootApplication直接连接(项目是直接去gitee拉下来的renren-security)
在这里插入图片描述

SpringBoot项目通过SSH通道进行数据库访问

//TODO 近日测试后补充

相关文章:

  • Git 的基本概念和使用方式以及常见错误的处理方法
  • 【华为OD机试高分必刷题目】决战(JavaPythonC++动态规划DP实现)
  • golang学习笔记——接口interfaces
  • 夺走的第一份工作竟是OpenAI CEO?
  • FPGA设计时序约束八、others类约束之Set_Case_Analysis
  • 坐标系下的运动旋量转换
  • SystemVerilog学习 (7)——面向对象编程
  • PMCW体制雷达系列文章(4) – PMCW雷达之抗干扰
  • transform学习资料
  • 认识Tomcat
  • 【前端开发】JS Vue React中的通用递归函数
  • 机器学习第5天:多项式回归与学习曲线
  • 基于一致性算法的微电网分布式控制MATLAB仿真模型
  • 基于SpringBoot+Vue的新能源汽车充电桩管理系统
  • 数据治理之springboot项目入门
  • php的引用
  • idea + plantuml 画流程图
  • java多线程
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • 成为一名优秀的Developer的书单
  • 翻译--Thinking in React
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 简单数学运算程序(不定期更新)
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 首页查询功能的一次实现过程
  • 项目实战-Api的解决方案
  • 硬币翻转问题,区间操作
  • raise 与 raise ... from 的区别
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • ###C语言程序设计-----C语言学习(6)#
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (二)pulsar安装在独立的docker中,python测试
  • (二)WCF的Binding模型
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (十一)手动添加用户和文件的特殊权限
  • (一)基于IDEA的JAVA基础10
  • (一)基于IDEA的JAVA基础12
  • .describe() python_Python-Win32com-Excel
  • .NET Core 项目指定SDK版本
  • .net6+aspose.words导出word并转pdf
  • .net连接MySQL的方法
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @PreAuthorize注解
  • [Android]Tool-Systrace
  • [Angular] 笔记 6:ngStyle
  • [Arduino学习] ESP8266读取DHT11数字温湿度传感器数据
  • [BT]BUUCTF刷题第4天(3.22)
  • [bzoj 3534][Sdoi2014] 重建