如何配置来完成PostgreSQL数据库远程连接
发布时间:2025-05-22 00:32:46 发布人:远客网络
一、如何配置来完成PostgreSQL数据库远程连接
安装PostgreSQL数据库之后,默认是只接受本地访问连接。如果想在其他主机上访问PostgreSQL数据库服务器,就需要进行相应的配置。配置远程连接PostgreSQL数据库的步骤很简单,只需要修改data目录下的pg_hba.conf和postgresql.conf,其中pg_hba.conf是用来配置对数据库的访问权限,postgresql.conf文件用来配置PostgreSQL数据库服务器的相应的参数。下面介绍配置的步骤:
1.修改pg_hba.conf文件,配置用户的访问权限:
# TYPE DATABASE USER CIDR-ADDRESS METHOD
#"local" is for Unix domain socket connections only
host all all 127.0.0.1/32 trust
host all all 192.168.1.0/24 md5
其中红色标识的内容为新添加的内容,表示允许网段192.168.1.0上的所有主机使用所有合法的数据库用户名访问数据库,并提供加密的密码验证。在我们的环境中,我们需要在主机192.168.1.5上使用postgres用户访问192.168.1.9上的PostgreSQL数据库。
2.修改postgresql.conf文件,将数据库服务器的监听模式修改为监听所有主机发出的连接请求。
定位到#listen_addresses='localhost'。PostgreSQL安装完成后,默认是只接受来在本机localhost的连接请求,通过将改行内容修改为listen_addresses='*'来允许数据库服务器监听来自任何主机的连接请求:
listen_addresses='*'# what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to'localhost','*'= all
修改之后,保存并退出,然后重起数据库,就可以在在远程机器上访问PostgreSQL数据库了。
matrix数据库使用的是PostgreSQL数据库。你可以安装一个类似phpmyadmin的管理
二、Java使用JDBC连接PostgreSQL——使用maven,简单配置
为了实现Java使用JDBC连接PostgreSQL,首先需要安装并配置PostgreSQL数据库。具体步骤如下:
1.安装PostgreSQL:参考教程进行安装和配置,以适配你的操作系统。例如,在Windows 11上可以查找详细的图文教程。
2.创建数据库和表:使用PostgreSQL提供的建表语句,参考相关教程执行建表操作。确保数据库和表的命名正确。
3.连接PostgreSQL:使用Java的JDBC技术实现与PostgreSQL的连接。关键参数包括:
org.postgresql.Driver:此参数用于加载PostgreSQL的驱动程序,需要相应的JDBC库支持。
jdbc:postgresql://localhost:5432/School:这是连接PostgreSQL数据库的URL,其中School为数据库名称,localhost表示本地服务器,5432为默认端口号。
username和password:用于认证访问数据库的用户账号和密码。默认情况下,用户账号为postgres。
4.配置pom.xml:在项目中引入Maven依赖,简化配置过程。确保在pom.xml文件中包含正确的JDBC库依赖项,如postgresql的驱动程序。
按照上述步骤,通过Maven管理项目依赖,实现Java使用JDBC连接PostgreSQL变得简单。通过配置和调用适当的方法,可以轻松进行数据库操作和查询。
三、SpringBoot中使用PostgreSQL数据库
在如今的关系型数据库中,有两个开源产品是你必须知道的。其中一个是MySQL,相信关注我的小伙伴们一定都不陌生,因为之前的SpringBoot关于关系型数据库的所有例子都是对MySQL来介绍的。而今天我们将介绍另外一个开源关系型数据库:PostgreSQL,以及在SpringBoot中如何使用。
在学习PostgreSQL的时候,我们总是会将其与MySQL放一起来比较:MySQL自称是最流行的开源数据库,而PostgreSQL则标榜自己是最先进的开源数据库,那么有多先进呢?下面就一起认识一下它!
PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现在商业网站数据库中。PostgreSQL支持大部分的SQL标准并且提供了很多其他现代特性,如复杂查询、外键、触发器、视图、事务完整性、多版本并发控制等。同样,PostgreSQL也可以用许多方法扩展,例如通过增加新的数据类型、函数、操作符、聚集函数、索引方法、过程语言等。另外,因为许可证的灵活,任何人都可以以任何目的免费使用、修改和分发PostgreSQL。
既然跟MySQL一样,同为关系型数据库,那么什么时候用MySQL,什么时候用PostgreSQL自然是我们需要去了解的。所以下面简单介绍一下,PostgreSQL相比于MySQL来说,都有哪些优势,如果你有这些需求,那么选择PostgreSQL就优于MySQL,反之则还是选择MySQL更佳:
支持存储一些特殊的数据类型,比如:array、json、jsonb
对地理信息的存储与处理有更好的支持,所以它可以成为一个空间数据库,更好的管理数据测量和几何拓扑分析
可以快速构建RESTAPI,通过PostgREST可以方便的为任何PostgreSQL数据库提供RESTfulAPI的服务
支持树状结构,可以更方便的处理具备此类特性的数据存储
外部数据源支持,可以把MySQL、Oracle、CSV、Hadoop等当成自己数据库中的表来进行查询
对索引的支持更强,PostgreSQL支持B-树、哈希、R-树和Gist索引。而MySQL取决于存储引擎。MyISAM:BTREE,InnoDB:BTREE。
事务隔离更好,MySQL的事务隔离级别repeatableread并不能阻止常见的并发更新,得加锁才可以,但悲观锁会影响性能,手动实现乐观锁又复杂。而PostgreSQL的列里有隐藏的乐观锁version字段,默认的repeatableread级别就能保证并发更新的正确性,并且又有乐观锁的性能。
时间精度更高,可以精确到秒以下
字符支持更好,MySQL里需要utf8mb4才能显示emoji,PostgreSQL没这个坑
存储方式支持更大的数据量,PostgreSQL主表采用堆表存放,MySQL采用索引组织表,能够支持比MySQL更大的数据量。
序列支持更好,MySQL不支持多个表从同一个序列中取id,而PostgreSQL可以
增加列更简单,MySQL表增加列,基本上是重建表和索引,会花很长时间。PostgreSQL表增加列,只是在数据字典中增加表定义,不会重建表。
这里仅列举了开发者视角关注的一些优势,还有一些其他优势读者可查看这篇文章,获得更详细的解读。
读者可以通过下面的链接获取PostgreSQL各版本的安装程序,这里不对安装过程做详细描述了,根据安装程序的指引相信大家都能完成安装(一路next,设置访问密码和端口即可)。
下载地址:
注意:因为14是今天刚发布的版本,为避免SpringBoot的兼容问题,还是选用之前的13.4版本来完成下面的实验。
安装完成后,打开pgAdmin。因为自带了界面化的管理工具,所以如果你用过mysql等任何关系型数据库的话,基本不用怎么学,就可以上手使用了。
在安装好了PostgreSQL之后,下面我们尝试一下在SpringBoot中使用PostgreSQL数据库。
第一步:创建一个基础的SpringBoot项目(如果您还不会,可以参考这篇文章:快速入门)
第二步:在pom.xml中引入访问PostgreSQL需要的两个重要依赖:
这里postgresql是必须的,spring-boot-starter-data-jpa的还可以替换成其他的数据访问封装框架,比如:MyBatis等,具体根据你使用习惯来替换依赖即可。因为已经是更上层的封装,所以基本使用与之前用MySQL是类似的,所以你也可以参考之前MySQL的文章进行配置,但数据源部分需要根据下面的部分配置。
第三步:在配置文件中为PostgreSQL数据库配置数据源、以及JPA的必要配置。
第四步:创建用户信息实体,映射user_info表(最后完成可在pgAdmin中查看)
第五步:创建用户信息实体的增删改查
第六步:创建单元测试,尝试一下增删改查操作。
一切顺利的话,因为这里用的是create策略,所以表还在,打开pgAdmin,可以看到user_info表自动创建出来了,里面的数据也可以查到,看看跟单元测试的逻辑是否符合。
如果您之前有读过本系列教程中关于MySQL的10多篇使用案例,再看这篇使用PostgreSQL的案例,是不是感觉差别非常小?其实真正变动的部分主要是两个地方:
而对于更为上层的数据操作,其实并没有太大的变化,尤其是当使用SpringDataJPA的时候,这就是抽象的魅力所在!你体会到了吗?
好了,今天的学习就到这里!如果您在学习过程中遇到困难?可以加入我们超高质量的Spring技术交流群,参与交流与讨论,更好的学习与进步!更多SpringBoot教程可以点击直达!,欢迎收藏与转发支持!
本文的完整工程可以查看下面仓库中2.x目录下的chapter6-4工程:
Github:
Gitee:
如果您觉得本文不错,欢迎Star支持,您的关注是我坚持的动力!
欢迎关注我的公众号:程序猿DD,分享外面看不到的干货与思考!