当前位置:  开发笔记 > 后端 > 正文

如果可能,如何嵌入PostgreSQL?

如何解决《如果可能,如何嵌入PostgreSQL?》经验,为你挑选了4个好方法。

如果可能,我有兴趣能够嵌入PostgreSQL数据库,类似于sqllite.我读过这是不可能的.我不是数据库专家,所以我想听听你的意见.

基本上我想要没有所有配置和安装的PostgreSQL.如果有可能,请告诉我如何.



1> Brian R. Bon..:

你不能嵌入它,也不应该尝试.

对于嵌入,你应该使用你提到的sqlite或firebird rdbms.


我推荐Firebird
我现在也在考虑学习Firebird作为唯一一个嵌入式和服务器/客户端形式的数据库,并且有一个完全免费的,开源的,非商业性的议程.

2> 小智..:

在后台进程中运行postgresql.

在您的应用程序中启动一个单独的线程,它将以本地模式启动postgresql服务器,方法是将其绑定到带有一些随机空闲端口的localhost或使用套接字(Windows是否支持套接字?).这应该是相当容易的,例如:

system("C:\ Program Files\MyApplication\pgsql\postgres.exe -DC:\ Documents and Settings\User\Local Settings\MyApplication\database -h 127.0.0.1 -p 12345");

然后只需连接到127.0.0.1:12345.

当您的应用程序退出时,您始终可以将SIGTERM发送到您的线程,然后等待几秒钟以便postgresql退出(即加入线程).

PS:您也可以使用pg_ctl来控制"嵌入式"数据库,即使没有线程,只需在启动应用程序时执行"pg_ctl start"(使用适当的选项),在退出时执行"pg_ctl stop".


不,在我的问题中,我以任何方式都不是很有趣.

3> 小智..:

除非你重写代码,否则不能运行Postgres"嵌入式".要么将其作为单独的进程运行,要么使用其他方法.SQLite是一个很好的选择.但还有其他人.MySQL有一个嵌入式版本.请访问http://mysql.com/oem/查看.还有几个java选择,Mac也有你可以写的核心数据.地狱,你甚至可以使用FoxPro.你在什么操作系统和数据库需要什么服务?



4> 小智..:

您不能将其嵌入到像sqlite等过程类型的东西中,但您可以使用Inno setup在http://www.innosetup.org轻松地将其嵌入到您的应用程序设置中.搜索他们的邮件列表存档,你会发现有人为你做了大部分的工作,所有你需要的就是抓住压缩的发行版,你可以在用户安装你的应用程序时轻松安装postgresql.然后,您可以使用pg_hba.conf文件将服务器限制为仅限本地主机.不是真正的嵌入式数据库,但它会起作用.

推荐阅读
夏晶阳--艺术
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有