Questions tagged «postgresql»

PostgreSQL是一个开放源代码的,对象关系数据库管理系统(ORDBMS),可用于所有主要平台,包括Linux,UNIX,Windows和OSX。提出问题时,请注明确切的Postgres版本。有关管理或高级功能的问题最好直接到dba.stackexchange.com。

2
如何为多个IP地址配置postgresql postgresql.conf listen_addresses
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow的主题。 8年前关闭。 改善这个问题 我可以很好地连接到一个远程PostgreSQL服务器,该服务器对pg_hba.conf中的几个IP有连接限制,但是如果您在postgresql.conf文件中listen_addresses设置为"*",就足够了吗? 该文件表明该参数可以采用逗号分隔的IP地址列表,但是如果我这样做,我将失去远程连接的能力。 postgresql-8.4.9 Rhel
70 postgresql 

3
PostgreSQL中密码的数据类型是什么?
我看,有这样的数据类型的密码被固定在你的数据库里面做加密。 我现在用它varchar来存储密码。我有个想法,我应该以某种方式对密码应用SHA-512函数,并将该数据放在某个地方,以便删除纯文本密码。 但是,Perl中的数据类型告诉我,PostgreSQL中有比varchar更好的方法。 PostgreSQL中密码的数据类型是什么?

9
Oracle SQL Developer和PostgreSQL
我正在尝试使用Oracle SQL Developer 3.0.04连接到PostgreSQL 9.1数据库,但是到目前为止我没有取得任何成功。 首先,如果我在首选项上添加了第三方驱动程序,则在添加新连接时,PostgreSQL没有选项卡(尽管它对MySQL很好用)。我使用的是JDBC4版本9.1驱动程序,但是尝试了相同版本的JDBC3,但仍然得到相同的结果。 其次,添加新连接时没有像手动配置选项卡那样的东西。最接近的是Oracle选项卡上的Advanced选项,我可以在其中提供一个自定义URL,但是由于抱怨所选的驱动程序(当然)而失败了。 最后,我连接了从XML文件导入连接的内容(以下内容),但它仅显示我的模式,而不显示其中的表。 所以,我的问题是:Orable SQL Developer是否支持PostgreSQL连接?还有其他方法可以在ObjectViewer中显示我的表吗? <?xml version = '1.0' encoding = 'UTF-8'?> <References xmlns="http://xmlns.oracle.com/adf/jndi"> <Reference name="Lumea" className="oracle.jdeveloper.db.adapter.DatabaseProvider" credentialStoreKey="Lumea" xmlns=""> <Factory className="oracle.jdeveloper.db.adapter.DatabaseProviderFactory"/> <RefAddresses> <StringRefAddr addrType="user"> <Contents>lumea</Contents> </StringRefAddr> <StringRefAddr addrType="subtype"> <Contents>thirdParty</Contents> </StringRefAddr> <StringRefAddr addrType="customUrl"> <Contents>jdbc:postgresql://localhost:5432/versates</Contents> </StringRefAddr> <StringRefAddr addrType="SavePassword"> <Contents>true</Contents> </StringRefAddr> <StringRefAddr addrType="password"> <Contents>myencryptedpass</Contents> </StringRefAddr> <StringRefAddr addrType="driver"> …

4
Postgres 9.1与Mysql 5.6 InnoDB?
一个简单的问题-2012年对于要求与ACID兼容的中型/大型数据库,哪个会更好? 我已经阅读了所有有关MySQL和pgSQL的文章(大部分),但其中大多数文章分别与版本4,5.1和7,8有关,并且过时(2008、2009)。现在已经快到2012年了,所以我想我们可以尝试重新审视这个问题。 基本上,我想知道PostgreSQL中是否有任何东西超过了MySQL的易用性,可用性和更大的开发人员/知识基础。 MySQL的查询优化器仍然很愚蠢吗?在非常复杂的查询上它仍然超级慢吗? 打我!:) PS。而且不要将我发送到Google或Wiki。我正在寻找一些特定的要点而不是概述+我更信任StackOverflow,而不是某些随机页面,其中“聪明的家伙”光芒四射。 附录 项目规模:假设一个订购系统每天每个帐户大约10-100个订单,几千个帐户,最终每个帐户可以有数百到数千个用户。 擅长:适应不断增长的需求和不断变化的需求时,要具有面向未来的灵活性。性能对于降低硬件部门的成本也很重要。熟练劳动力的可用性也是一个因素。 OLTP或OLAP:OLTP
69 mysql  postgresql 

5
GIS:PostGIS / PostgreSQL与MySql与SQL Server?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 改善这个问题 编辑:我已经将Postgres与PostGIS一起使用了几个月,我很满意。 我需要分析几百万个地理编码的记录,每个记录都有经度和纬度。这些记录包含至少三种不同类型的数据,我将尝试查看每个集合是否会相互影响。 对于所有这些数据,哪个数据库最适合作为基础数据存储?这是我的愿望: 我熟悉DBMS。我在PostgreSQL方面最弱,但是我愿意学习是否其他所有功能都可以解决。 它与GIS查询配合得很好。Google搜索表明PostgreSQL + PostGIS可能是最强大的?至少很多产品似乎都在使用它。MySql的Spatial Extensions似乎比较少? 低成本。尽管SQL Server Express 2008 R2中DB的限制为10GB,但我不确定我是否要承受免费版本的这一限制和其他限制。 与Microsoft .NET Framework不具有对抗性。多亏了Connector / Net 6.3.4,MySql才能很好地运行C#和.NET Framework 4程序。它完全支持.NET 4的实体框架。尽管我不反对为Devart的dotConnect for PostgreSQL Professional Edition支付180美元,但我找不到与之相当的非商业PostgreSQL版本。 与R兼容。似乎所有这三个都可以使用ODBC与R通讯,因此可能不是问题。 我已经使用MySql进行了一些开发,但是可以根据需要进行更改。

5
创建或替换触发器postgres
我想“创建或替换” postgres表的触发器。但是,没有这样的sql表达式。 我看到我可以先做一个“ DROP TRIGGER IF EXISTS”(http://www.postgresql.org/docs/9.5/static/sql-droptrigger.html)。 我的问题是: 是否有比(DROP+CREATE触发器)更推荐/更好的选择 有没有为什么没有这样的“创建或替换触发器”的原因(这可能意味着我不应该这样做) 请注意,Create or Replace Trigger在oracle(https://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm)中有一个“ ” 。然后, 这样的命令是否计划用于Postgres?

7
PostgreSQL与MySQL有何不同?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 改善这个问题 我被要求支持并使用PostgreSQL应用程序,但是我是MySQL专家-这是现实的任务吗?
68 sql  mysql  postgresql 

6
符合多个数据库的在线SQL语法检查器
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 7年前关闭。 改善这个问题 在线上是否有任何站点可用于验证符合多个数据库的语法? 例如:如果我有一个带有'usage'关键字的SQL语句,那么该站点应该抛出一个错误,提示说'usage'关键字在MYSQL中已保留?

9
如何在PostgreSQL中进行大型非阻塞更新?
我想在PostgreSQL的一个表上做一个大的更新,但是我不需要在整个操作中维护事务的完整性,因为我知道我要更改的列在执行期间不会被写入或读取。更新。我想知道psql控制台中是否有一种简便的方法可以使这些类型的操作更快。 例如,假设我有一个名为“ orders”的表,其中有3500万行,我想这样做: UPDATE orders SET status = null; 为了避免转移到主题之外的讨论,我们假定当前3500万列的所有status值都设置为相同(非null)值,从而使索引无用。 该语句的问题在于生效需要很长时间(仅是由于锁定),并且所有更改的行都被锁定,直到完成整个更新为止。此更新可能需要5个小时,而类似 UPDATE orders SET status = null WHERE (order_id > 0 and order_id < 1000000); 可能需要1分钟。超过3500万行,执行上述操作并将其分成35个块,仅需35分钟,可为我节省4小时25分钟。 我可以使用脚本进一步分解(在此处使用伪代码): for (i = 0 to 3500) { db_operation ("UPDATE orders SET status = null WHERE (order_id >" + (i*1000)" + " AND order_id …

5
如何修复Postgres中的“错误:列c.relhasoids不存在”?
我正在尝试在Postgresql中创建TABLE命令。创建表后,如果我在TABLE 表名中打孔,它将起作用。 但是我打入\ d 表名,下面一直出现错误。 ERROR: column c.relhasoids does not exist LINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi... 我尝试使用DROP DATABASE 表名重新创建数据库,然后再次重新创建表几次。但这没有用。 任何建议,将不胜感激!谢谢。
33 postgresql 

3
PostgreSQL的CI / CD管道失败,并显示“数据库未初始化,并且未指定超级用户密码”错误
我正在将Bitbucket管道与PosgreSQL用于CI / CD。根据此文档, PostgreSQL服务已通过bitbucket-pipelines.yml以下方式进行了描述: definitions: services: postgres: image: postgres:9.6-alpine 到现在为止一切正常。但是我所有的最新管道均失败,并出现以下错误: Error: Database is uninitialized and superuser password is not specified. You must specify POSTGRES_PASSWORD for the superuser. Use "-e POSTGRES_PASSWORD=password" to set it in "docker run". You may also use POSTGRES_HOST_AUTH_METHOD=trust to allow all connections without a password. This is …

1
从Pyspark df到PostgresSQL写入超过5000万,这是最有效的方法
从Spark数据帧向Postgres Tables插入数百万条记录(例如5000万条)的最有效方法是。过去,我通过使用批量复制和批处理大小选项(从成功的火花到MSSQL)做到了这一点 。 Postgres是否有类似的东西? 添加我尝试过的代码以及运行该过程所花费的时间: def inserter(): start = timer() sql_res.write.format("jdbc").option("numPartitions","5").option("batchsize","200000")\ .option("url", "jdbc:postgresql://xyz.com:5435/abc_db") \ .option("dbtable", "public.full_load").option("user", "root").option("password", "password").save() end = timer() print(timedelta(seconds=end-start)) inserter() 因此,我对1000万条记录执行了上述方法,并按中指定的进行了5个并行连接,numPartitions并尝试了200k的批量大小。 该过程花费的总时间为0:14:05.760926(十四分五秒)。 还有其他有效的方法可以减少时间吗? 我可以使用的有效或最佳批次大小是多少?增加我的批量大小会更快地完成工作吗?还是打开多个连接,即> 5可以帮助我更快地完成此过程? 在一个平均14分钟10万条记录是不坏,但找的人在那里谁也以前做过这有助于回答这个问题。

1
如何在启用TLS配置的情况下连接到Traefik TCP服务?
我正在尝试配置Traefik,以便可以通过域名访问服务,而不必设置其他端口。例如,两个MongoDB服务(均位于默认端口上,但位于不同的域中)example.localhost和example2.localhost。仅此示例有效。我的意思是,其他情况也可能有效,但是我无法连接到它们,并且我不明白问题出在哪里。Traefik可能甚至都不是问题。 我准备了一个带有示例的存储库。您只需要使用mkcert生成自己的证书即可。位于的页面会example.localhost返回403 Forbidden错误,但您不必担心,因为此配置的目的是显示SSL正常(挂锁,绿色状态)。所以不要专心403。 仅与mongo服务的SSL连接有效。我使用Robo 3T程序对其进行了测试。选择SSL连接后,提供主机example.localhost并选择用于自签名(或自有)连接的证书即可。那是唯一以这种方式工作的东西。不管我是否提供证书,与redis(Redis Desktop Manager)和pgsql(PhpStorm,DBeaver,DbVisualizer)的连接均不起作用。我不将SSL转发给服务,仅连接到Traefik。我花了很长时间。我搜索了互联网。我还没有找到答案。有人解决了吗? PS。我在Linux Mint上工作,因此我的配置应该可以在此环境下正常工作。我会要求Linux的解决方案。 如果您不想浏览存储库,请附加最重要的文件: docker-compose.yml version: "3.7" services: traefik: image: traefik:v2.0 ports: - 80:80 - 443:443 - 8080:8080 - 6379:6379 - 5432:5432 - 27017:27017 volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./config.toml:/etc/traefik/traefik.config.toml:ro - ./certs:/etc/certs:ro command: - --api.insecure - --accesslog - --log.level=INFO - --entrypoints.http.address=:80 - --entrypoints.https.address=:443 - --entrypoints.traefik.address=:8080 …

4
JPA继承@EntityGraph包括子类的可选关联
给定以下域模型,我想加载所有Answers,包括其Values和其各自的子孩子,并将其放入中AnswerDTO,然后转换为JSON。我有一个可行的解决方案,但它遇到了N + 1问题,我想通过使用ad-hoc摆脱它@EntityGraph。所有关联都已配置LAZY。 @Query("SELECT a FROM Answer a") @EntityGraph(attributePaths = {"value"}) public List<Answer> findAll(); 使用的ad-hoc @EntityGraph对Repository方法我可以确保值是预取的,以防止N + 1上的Answer->Value相关性。虽然我的结果还不错,但是还有一个N + 1问题,因为延迟加载s 的selected关联MCValue。 使用这个 @EntityGraph(attributePaths = {"value.selected"}) 失败,因为该selected字段当然只是某些Value实体的一部分: Unable to locate Attribute with the the given name [selected] on this ManagedType [x.model.Value]; 我如何告诉JPA仅selected在值是a的情况下才尝试获取关联MCValue?我需要类似的东西optionalAttributePaths。

3
是否可以在rails中有多个数据库连接池来进行切换?
一点背景 多年来,我一直在使用Apartment gem来运行多租户应用程序。现在最近有需要将数据库扩展到单独的主机,数据库服务器根本无法跟上(读和写都变得太多了)-是的,我将硬件扩展到最大(专用)硬件,64核,raid 10中的12 Nvm-e驱动器,384Gb ram等)。 我正在考虑按每个租户执行此操作(1个租户= 1个数据库连接配置/池),因为这是一种“简单”且有效的方式,可以在number-of-tenants不进行应用程序代码更改的情况下获得多达两倍的容量。 现在,我正在Rails 4.2 atm上运行,不久将升级到5.2。我可以看到Rails 6增加了对每个模型的连接定义的支持,但这并不是我真正需要的,因为我为20个租户中的每一个都有一个完全镜像的数据库架构。通常,我会针对每个请求(在中间件中)或每个后台作业(sidekiq中间件)切换“数据库”,但是目前这对于公寓的gem来说是微不足道的,因为它只是search_path在Postgresql中进行设置,而实际上并没有改变实际的连接。当切换到每租户托管策略时,我将需要根据请求切换整个连接。 问题: 我知道我可以完成ActiveRecord::Base.establish_connection(config)每个请求/后台工作-但是,正如我也了解的那样,这将触发进行全新的数据库连接握手,并在Rails中产生一个新的数据库池-对吗?我猜想对我的应用程序的每个请求都会产生这种开销,这会降低性能。 因此,我想知道是否有人可以从一开始就预建立多个(总共20个)数据库连接/池(例如,在应用程序启动时),然后根据每个请求在这些池之间进行切换?这样他的数据库连接已经建立并准备使用。 所有这些仅仅是一个糟糕的主意,我应该寻找一种不同的方法吗?例如1个应用实例=与一个特定租户的特定连接。或者是其他东西。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.