我最近安装了 Postgresql 11,在安装过程中,没有步骤为 Postgres 输入密码和用户名。现在在 pgAdmin 4 中,我想将数据库连接到服务器,它要求我输入密码,而我一开始没有输入密码。任何人都知道发生了什么。谢谢!
我在 CentOS Linux 版本 7.5.1804(核心)
当我登录postgres并运行时:
bash-4.2$ /usr/pgsql-11/bin/initdb -D /var/lib/pgsql/11/data
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
creating directory /var/lib/pgsql/11/data ... ok
creating subdirectories ... ok
selecting default max_connections ... …Run Code Online (Sandbox Code Playgroud) 我是PostgreSQL的新手,所以问题可能很简单。所以。我已经在Fedora 29上安装了PostgreSQL 11和pgAdmin4。我可以通过终端或AzureDataStudio连接到数据库,但是当我尝试与pgAdmin连接时,出现此错误:
无法连接到服务器:
无法连接到服务器:权限被拒绝服务器是否在主机“ 127.0.0.1”上运行并接受端口5432上的TCP / IP连接?
我正在尝试最近3天可以找到的任何东西,但没有任何帮助。这是我的配置:
# I set listen_address in postgresql.conf:
listen_addresses = '*'
# and these are my pg_hba.conf hosts:
local all all md5
host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
host all all ::1/128 md5
host all all ::/0 md5
local replication all peer
host replication all 127.0.0.1/32 ident
host replication all ::1/128 ident
Run Code Online (Sandbox Code Playgroud)
这些配置是否有问题?还是我应该知道通过pgAdmin连接的任何技巧?提前致谢。
更新:
我应该提到我可以通过终端连接到数据库:
psql -h 127.0.0.1 -U postgres
Run Code Online (Sandbox Code Playgroud)
通过AzureDataStudio连接不需要任何指定的数据。有这样的形式:
填写表单并提交“连接”按钮将连接到数据库。另外,我可以通过JetBrains的DataGrip连接到具有相同格式和数据的数据库。
更新2:
我在运行Fedora 30的本地计算机上同时运行PostgreSQL和pgAdmin。
更新3:
这是我完整软件的信息:
// OS …Run Code Online (Sandbox Code Playgroud) 我正在寻找 postgres 中的 BLOCKSIZE 配置。我想知道有没有办法更改/设置该值?
我正在两个不同应用程序的数据库之间创建逻辑复制。然而,在开发环境中,我的数据库保留在同一个 postgres docker 容器中。
我的应用程序使用 Rails,因此我创建了一个迁移来创建来自发布者的订阅。但当我运行它时,它永远有效。如果我创建另一个容器并将数据库分开,订阅就会膨胀。
无论如何,我可以在同一个容器中运行它吗?
尝试在我的应用程序中支持 PostgreSQL DB,发现了这种奇怪的行为。
准备:
CREATE TABLE test(id INTEGER, flag BOOLEAN);
INSERT INTO test(id, flag) VALUES (1, true);
Run Code Online (Sandbox Code Playgroud)
假设有两个并发事务 ( Autocommit=false, READ_COMMITTED ) TX1和TX2:
TX1:
UPDATE test SET flag = FALSE WHERE id = 1;
INSERT INTO test(id, flag) VALUES (2, TRUE);
-- (wait, no COMMIT yet)
Run Code Online (Sandbox Code Playgroud)
TX2:
SELECT id FROM test WHERE flag=true FOR UPDATE;
-- waits for TX1 to release lock
Run Code Online (Sandbox Code Playgroud)
现在,如果我在TX1中COMMIT,则 TX2 中的 SELECT 将返回空光标。
这对我来说很奇怪,因为 Oracle 和 MariaDB 中的相同实验导致选择新创建的行 (id=2)。
我在 …
postgresql locking transactions postgresql-11 select-for-update
我正在尝试使用node-pg-migrate和运行迁移来在我的节点项目中创建表。当我运行迁移时,我得到函数 uuid_generate_v4() 不存在。
我确实检查了我的扩展并且 uuid-ossp 可用。
extname | extowner | extnamespace | extrelocatable | extversion | extconfig | extcondition
-----------+----------+--------------+----------------+------------+-----------+--------------
plpgsql | 10 | 11 | f | 1.0 | |
uuid-ossp | 16384 | 2200 | t | 1.1 | |
(2 rows)
Run Code Online (Sandbox Code Playgroud)
我希望我的迁移能够运行,但它失败了。我在 Mac 上使用 Postgres 11。从这里安装 Postgres - https://postgresapp.com/
我正在尝试在 C 中为 PostgreSQL 编写一个基本类型(使用 xcode),并且我已经安装了 PostgreSQL 11,但似乎postgres.h不能简单地包含在文件中(“'postgres.h' 文件未找到”)。
有人能告诉我如何解决这个问题吗?而且我可以在任意目录下编写代码,还是必须在PostgreSQL目录下编写?
或者也许问题应该是:如何安装头文件postgres.h?
我在理解Postgres中的交易时遇到了困难。我的程序可能会遇到异常。在过程的某些部分中,我可能想要到目前为止进行工作,这样在发生异常时不会回滚它。
我想在过程的末尾有一个异常处理块,在该块中捕获异常并将异常信息插入到日志表中。
我将问题简化为下面的简单过程,该过程在PostgreSQL 11.2上失败,
2D000 cannot commit while a subtransaction is active
PL/pgSQL function x_transaction_try() line 6 at COMMIT
Run Code Online (Sandbox Code Playgroud)
2D000 cannot commit while a subtransaction is active
PL/pgSQL function x_transaction_try() line 6 at COMMIT
Run Code Online (Sandbox Code Playgroud)
为什么此存储过程不起作用?为什么为什么我们从来没有看到过输出,raise notice 'B'而是进入了异常块?是否可以使用Postgres 11存储过程来完成上述操作?
编辑:这是一个完整的代码示例。将以上完整的代码示例(包括create procedure和call语句)粘贴到sql文件中,然后在Postgres 11.2数据库中运行以进行复制。所需的输出将是该函数A随后打印的结果B,但A随后会C与异常信息一起打印。
还要注意,如果注释掉所有异常处理块,以使该函数根本不捕获异常,则该函数将输出“ A”然后输出“ B”而不会发生异常。这就是为什么我将问题命名为“具有异常块的过程中Postgres提交可以存在吗?”的原因。
我正在使用 Hibernate 5 和 PostgreSQL 11。我检查了方言,最新的是PostgreSQL95Dialect.
我应该使用我拥有的较新版本的数据库做什么?
我认为使用上没有什么大问题PostgreSQL95Dialect,但对我来说听起来不对,特别是数据库可能会进一步升级,并且将来可以更无缝地更新更接近的版本。
原因:
原因是,我关心方言,我想引入jsonbHibernate 不支持的新类型,所以我想尽可能接近现代版本的数据库,方言也是如此。
postgresql-11 ×10
postgresql ×8
pgadmin-4 ×2
c ×1
centos7 ×1
hibernate ×1
java ×1
kotlin ×1
locking ×1
pg-hba.conf ×1
plpgsql ×1
selinux ×1
transactions ×1