postgreSQL应该如何配置才能从外部编程连接?
postgreSQL默认不允许外部连接,需要进行配置才行,postgreSQL版本是8.4.4。进入%postgreSQL_path%\8\data目录,打开pg_hba.conf文件,找到下面这段:
创新互联建站长期为上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为三河企业提供专业的网站建设、成都网站建设,三河网站改版等技术服务。拥有十余年丰富建站经验和众多成功案例,为您定制开发。
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all
127.0.0.1/32 md5
# IPv6 local connections:
#host all
all ::1/128 md5
在# IPv4 下一系列的host增加一行:
host
all all 192.168.80.1/24 md5
这行的意思是允许所有 192.168.80.***
这样ip访问本机postgreSQL服务。这里要说明一下,原有的
host all
all 127.0.0.1/32
md5
这一行不要删除,我第一次配置时就因为直接修改这行,然后导致postgreSQL服务无法启动。而postgreSQL启动失败后,有很多postgres的进程无法自动关闭,使用任务管理器是无法手动把它们全部关闭的,因为postgreSQL会自动开启新的进程,经常你关了一个,它又打开了很多个。最后我是借用cports工具的“终止打开选中窗口的进程”功能,才把postgreSQL全部给关闭的。
postgreSQL服务无法启动,也有说解决方法如下:
修改本地链接属性:
本地链接-属性-Internet协议(TCP/IP)-属性-常规
-高级-WINS-启动
LMHOSTS查询
已选上则点去前面的钩(如果没有则勾上)。确定,确定,关闭。
然后你就会发现postgres服务可以启动了。
原因是Dr.com的工作方式修改了Winsock
LSP,致使postgres服务无法正常启动。
postgres服务启动后一直会开在那里,期间可以正常使用Dr.com(弹出对话框不要选择重启),但是启动重启之后PostgreSQL又不能使用了。
遇到这种情况请重复以上步骤,勾上或者去掉“启动
LMHOSTS查询”前的钩,改变状态就行。
然后就又可以了。
我遇到的问题不属于这种情况,经测试无效。
同时修改postgresql.conf文件,
listen_addresses =
'*'
我本机中默认就是如上配置,也就是我在安装的时候就设置了允许所有地址。
配置说明:
# TYPE DATABASE USER
CIDR-ADDRESS
METHOD
说明每一行有五个字段,
分别是:连接类型、可使用的数据库名、使用者、DIDR地址、和验证方法等五项。
下面,我只介绍一些针对每个字段常用的选项。
字段一:TYPE。
可以选择:local或host。
前者只能允许本地的用户登陆Postgres数据库;后者可以接受远程客户登陆。所以,
我们应该使用“host”。
字段二:DATWABSE。
连接用户可以使用的数据库名字。可以使Postgres的一个具体的
数据库名,也可以使用“all”来允许用户访问所有数据库。
字段三:USER。可以指定某个具体的用户来连接Postgres数据库(还要结合后面的地址字段),
也可以使用“all”来允许所有用户连接数据库。
字段四:DIDR-ADDRESS。
是IP地址与掩码的另一种表示方法。
Postgres是通过这个字段来了解,允许那些IP或IP网段连接此服务器。
它的格式是:
IP地址/掩码。
这个掩码和子网掩码是一个道理,只不过是用一个小于等于32的正数来表示,
表示的正是子网掩码中高几位为1,
比如,255.255.255.0
就是“24”,说明高24位是1。
192.168.0.1/32 相当于
IP为192.168.0.1,子网掩码为255.255.255.255的网段,
很显然,这只表明192.168.0.1IP自己。
字段五:METHOD。
这是验证方法。可选的有:
reject:拒绝这个IP的用户访问;
md5:密码以md5作为hash编码;
password:密码作为明文传输(好恐怖!);
krb5:密码以krb5作为hash编码。
下面举一个例子,来说明如何进行设置:
#
TYPE DATABASE USER CIDR-ADDRESS
METHOD
#允许IP为192.168.0.1的所有用户登陆到Postgres服务器的所有数据库,采用md5验证。
host all all
192.168.0.1/32
md5
#允许用户testuser在192.168.0.XX的网段任意机器登陆Postgres服务器,
#只能使用数据库testdb,采用md5验证。
host
testdb testuser 192.168.0.1/24 md5
2.
改监听地址
默认下,POSTGRESQL只接受本地服务,要接受远程服务,需改postgresql.conf 文件listen_address =
*
3. 如果是在Linux上的PostgreSQL
要打开 “unix的tcpip套接子”。
编辑
$POSTGRES/data/postgresql.conf
文件,
将tcpip_socket=off改成tcpip_socket=on即可。
配置说明部分摘自文章:
三分钟!彻底搞懂PostgreSQL 和 MySQL 区别之分
PostgreSQL 和 MySQL 是将数据组织成表的关系数据库。这些表可以根据每个表共有的数据链接或关联。关系数据库使您的企业能够更好地了解可用数据之间的关系,并帮助获得新的见解以做出更好的决策或发现新的机会。
PostgreSQL 和 MySQL 都依赖于 SQL(结构化查询语言),这是与管理系统交互的标准语言。SQL 允许使用具有简单结构的几行源代码连接表,大多数非技术员工可以快速学习。
使用 SQL,分析师不需要知道订单表在磁盘上的位置、如何执行查找以查找特定订单或如何连接订单表和客户表。数据库编译查询并计算出正确的数据点。
MySQL 和 PostgreSQL 都支持 JavaScript Object Notation (JSON) 存储和传输数据,尽管 PostgreSQL 也支持 JSONB,这是 JSON 的二进制版本,它消除了键的重复和无关的空格。
除了传统的支持机制外,这两个数据库都提供强大的社区支持。
PostgreSQL,也称为 Postgres,是一种开源关系数据库,因其可靠性、灵活性和对开放技术标准的支持而享有盛誉。PostgreSQL 支持非关系和关系数据类型。它被称为当今可用的最兼容、最稳定和最成熟的关系数据库之一,并且可以轻松处理复杂的查询。
PostgreSQL 的特性包括:
PostgreSQL 这是一个“一刀切”的解决方案,适用于许多寻求经济高效的方法来改进其数据库管理系统 (DBMS) 的企业。它具有足够的可扩展性和多功能性,可以通过强大的扩展生态系统快速支持各种专业用例,涵盖时间序列数据类型和地理空间分析等工作。作为开源数据库解决方案构建的 PostgreSQL 完全不受许可限制、供应商锁定的可能性或过度部署的风险。PostgreSQL 通过对象关系数据库管理系统 (ORDBMS) 进行管理。
PostgreSQL 负责管理业务活动的在线事务处理 (OLTP)协议的企业数据库管理员提供了理想的解决方案,包括电子商务、客户关系管理系统 (CRM) 和财务分类帐。它也是管理接收、创建和生成的数据分析的理想选择。
这些是 PostgreSQL 的一些主要优点:
MySQL — 一种快速、可靠、可扩展且易于使用的开源关系数据库系统 — 旨在处理关键任务、高负载的生产应用程序。它是一种常见且易于启动的数据库,内存、磁盘和 CPU 利用率较低,有关系数据库管理系统 (RDMS) 管理。MySQL Community Edition 是一个由活跃的在线社区支持的免费下载版本。
MySQL 功能包括所有 SQL 标准命令以及事务和 ACID 合规性(代表原子性、一致性、隔离性和持久性)。
两个最常见的关系数据库是什么 MySQL 和 Oracle。MySQL 不是 SQL Server 的同义词,SQL Server 是 Microsoft 许可产品,与 MAC OS X 缺乏兼容性。
MariaDB 经常与 MySQL 混淆,它是 MySQL 的一个开源分支,速度更快,提供更多存储引擎 (12),但功能有限。MySQL 和 MariaDB 使用的存储引擎都是 InnoDB。InnoDB 提供标准的 ACID 兼容特性。与 MySQL 不同,MariaDB 不支持数据屏蔽或动态列表。
MySQL 通常用作 Web 数据库来存储各种信息类型,从单个信息数据点到为组织提供的产品或服务的完整列表。它是LAMP(Linux 操作系统、Apache HTTP 服务器、MySQL RDBMS 和 PHP 编程语言)的基础组件,这是一种有助于创建API、Web 应用程序和网站的软件堆栈模型。
MySQL Workbench 是一个单一的、集成的可视化 SQL 平台,用于 MySQL 数据库的创建、开发、设计和管理。
MySQL 为市场提供了许多好处,包括:
PostgreSQL 和 MySQL 之间有很多不同之处。特性、功能和优势方面的一些差异如下:
总之,PostgreSQL 和 MySQL 都有不同的用途,它们之间的选择取决于企业目标和资源。一般来说,PostgreSQL 是一个更强大、更高级的数据库管理系统,非常适合需要在大型环境中快速执行复杂查询的组织。但是,对于预算和空间更受限制的公司来说,MySQL 是一个理想的解决方案。
PostgreSQL适合做(超)大型商业网站的数据库吗?PostgreSQL支持像Oracle的pck那样的编程吗?
postgresql用于超大型商业网站是完全OK的,至于Oracle的PCK是什么不清楚,估计是存储过程吧。
postgresql支持很多种语言写存储过程,c,pgsql,perl,python,tcl等,
但你如果要问的是存储过程是不是和oracle的存储过程语法一样,那肯定是不一样的
有个数据库叫EnterpriseDB,就是为了让postgresql各种语法更像oracle而出来的,你也可以去研究一下
如何评价postgresql
PostgreSQL的主要优点:
1、对事务的支持与MySQL相比,经历了更为彻底的测试。对于一个严肃的商业应用来说,事务的支持是不可或缺的。
2、MySQL对于无事务的MyISAM表。采用表锁定,一个长时间运行的查询很可能会长时间地阻碍对表的更新。而PostgreSQL不存在这样的问题。
3、PostgreSQL支持存储过程,而目前MySQL不支持,对于一个严肃的商业应用来说,作为数据库本身,有众多的商业逻辑的存在,此时使用存储过程可以在较少地增加数据库服务器的负担的前提下,对这样的商业逻辑进行封装,并可以利用数据库服务器本身的内在机制对存储过程的执行进行优化。此外存储过程的存在也避免了在网络上大量的原始的SQL语句的传输,这样的优势是显而易见的。
4、对视图的支持,视图的存在同样可以最大限度地利用数据库服务器内在的优化机制。而且对于视图权限的合理使用,事实上可以提供行级别的权限,这是MySQL的权限系统所无法实现的。
5、对触发器的支持,触发器的存在不可避免的会影响数据库运行的效率,但是与此同时,触发器的存在也有利于对商业逻辑的封装,可以减少应用程序中对同一商业逻辑的重复控制。合理地使用触发器也有利于保证数据的完整性。
6、对约束的支持。约束的作用更多地表现在对数据完整性的保证上,合理地使用约束,也可以减少编程的工作量。
新闻标题:postgresql编程的简单介绍
标题链接:http://lswzjz.com/article/dsdjpis.html