SSH(Secure Shell)是一种用于安全地连接到远程计算机的协议。当需要访问数据库时,使用SSH secure tunneling(SSH安全隧道)可以确保数据传输的安全,同时也可以实现远程访问数据库的目的。本文将介绍如何使用SSH安全隧道来配置数据库访问。
1. 安装SSH客户端和数据库
在开始配置之前,需要保证SSH客户端和要访问的数据库都已经安装好。如果还没有安装,可以通过以下命令安装。
对于SSH客户端:
“`
sudo apt-get install openssh-client
“`
对于MySQL数据库:
“`
sudo apt-get install mysql-server
“`
2. 打开SSH远程访问和MySQL外部访问
在SSH和MySQL服务器上打开远程访问功能。在SSH服务器上,需要编辑“/etc/ssh/sshd_config”文件来打开远程访问功能。找到以下行:
“`
#Port 22
“`
取消注释并将端口号设置为所需的端口。例如,如果想要将SSH端口设置为2222,则将行更改为:
“`
Port 2222
“`
在MySQL服务器上,需要编辑“/etc/mysql/mysql.conf.d/mysqld.cnf”文件来允许外部访问。找到以下行:
“`
bind-address = 127.0.0.1
“`
将其更改为以下内容:
“`
bind-address = 0.0.0.0
“`
这将允许来自任何IP地址的外部连接到MySQL数据库。
重启SSH服务和MySQL服务器以使更改生效:
“`
sudo systemctl restart sshd
sudo systemctl restart mysql
“`
3. 配置SSH安全隧道
在远程计算机上,使用以下命令连接到SSH服务器:
“`
ssh -L :: @ -p
“`
参数说明:
– :用于连接到MySQL服务器的本地端口号。
– :MySQL服务器的IP地址。
– :MySQL服务器的端口号。
– :SSH服务器的用户名。
– :SSH服务器的IP地址。
– :SSH服务器的端口号。
例如,如果要将本地端口号设置为3306,MySQL服务器IP地址为192.168.1.100,MySQL服务器端口号为3306,SSH服务器用户名为“user”,SSH服务器IP地址为203.0.113.0,SSH服务器端口号为2222,则命令应该是:
“`
ssh -L 3306:192.168.1.100:3306 user@203.0.113.0 -p 2222
“`
在连接成功后,可以通过本地主机上的3306端口访问MySQL服务器。在命令行中输入以下命令以确认是否能够成功连接到MySQL服务器:
“`
mysql -u -p -h 127.0.0.1 -P
“`
其中:
– :MySQL服务器的用户名。
– :用于连接到MySQL服务器的本地端口号。
例如,如果MySQL服务器用户名为“root”,本地端口号为3306,则命令应为:
“`
mysql -u root -p -h 127.0.0.1 -P 3306
“`
如果连接成功,则会提示您输入MySQL用户的密码。输入密码后,将可以在本地计算机问MySQL数据库。
相关问题拓展阅读:
ssh缓存配置怎么操作
可以使用hibernate的二级缓存。
一、了解
Hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但session关闭时,一级缓存失效。
二级缓存是SessionFactory级别的全局缓存,它底下可以使用不同的缓存类库,比如ehcache、oscache等。
二、配置
1、在applicationContext.xml中定义如下:
org.hibernate.dialect.MySQLDialect
org.hibernate.cache.EhCacheProvider
true
true
ehcache.xml
com/crm/model/User.hbm.xml
2、在src目录下创建ehcache.xml,配置信息如下:
maxElementsInMemory属性用于指定缓存中最多可放多少个对象。
eternal属性指定缓存是否永久有效。
timeToIdleSeconds属性指定缓存多久未被使用便清理掉。
timeToLiveSeconds属性指定缓存的生命长度。
diskPersistent属性指定缓存是否被持久化到硬盘中,保存路径由标签指定。
3、在User.hbm.xml里加上,如下图所示
注意:
启动Tomcat,如发现如下错误
Could not find configuration ; using defaults.
Could not find configuration ; using defaults.
则是第二步没有做,加上即可.配置完毕
4、执行查询缓存时,若使用Criteria需设置如下(示例):
public List getUserInfoByCondition(Page page) {
List users = null;
Criteria criteria = this.getSession().createCriteria(User.class);
criteria.setFirstResult(page.getBeginIndex());
criteria.setMaxResults(page.getEveryPage());
criteria.setCacheable(true);
users = criteria.list();
return users;
}
SSH中实体类如何与数据库关联配置文件如何写?
我是通过hibernate自动生成的,只要打开MyEclipse中MyEclipse DB Browser连接数据库,右键表名点击那个hibernate就可以了!我就把我写的给你看看吧!
实体类:
public class Apps implements java.io.Serializable {
/**
* APP_ID NUMBER not null, SERVER_TYPE_ID NUMBER not null, SERVER_ID NUMBER
* not null
*/
private Integer appId;
private Integer serverTypeId;
private Integer serverId;
public Integer getAppId() {
return appId;
}
public void setAppId(Integer appId) {
this.appId = appId;
}
public Integer getServerTypeId() {
return serverTypeId;
}
public void setServerTypeId(Integer serverTypeId) {
this.serverTypeId = serverTypeId;
}
public Integer getServerId() {
return serverId;
}
public void setServerId(Integer serverId) {
this.serverId = serverId;
}
}
数据库关联配置文件:
//表名
//主键
//列名
如果用myEclipse ssh 数据库映射文件都是生成好的,你非要自己写,就给你个生成好的,你看看。
网上例子很多的啊
ssh中数据库是如何设计的
spring的依赖注入你懂吗,spring简单的理解就想当一个工厂,对了建议你去学习学习工厂方法和动态代理这两种设计模式,你可以在spring中配置其它框架的引用,比方说jndi,它的配置就是对持久层数据的引用,在spring中封装了对其它框架的一些引用,简单的理解位spring是一个代理就行了,
其次,对于你说的你不懂它的数据库的连接在哪里,说明你还没学好spring,spring中注入了hibernate数据库相关操作的工厂,在配置的时候就连接进去了,还有你的meeclipse里也加人了连接数据库的jar包吧,是吧,反正这些通过spring这个代理帮你连接了,
你若想要进行对数据库的增删改查,就可以直接用实体类调用数据库的引用来完成相应的操作,
建议你去学习学习反射机制,这样你就对hibernate的工作原理有了深刻的理解呢
关于ssh 数据库怎么配置的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
来源地址:SSH如何配置数据库访问? (ssh 数据库怎么配置)
转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:www.88531.cn资享网,谢谢!^^