初始化数据库postgresql 10.10时出错:死机:无法生成机密授权令牌

初始化数据库postgresql 10.10时出错:死机:无法生成机密授权令牌,postgresql,postgresql-10,Postgresql,Postgresql 10,运行命令时出现问题:sudo-su user\u test./pgsql/bin/initdb-D/example/folder 我从互联网上研究了很多信息来源,但没有找到解决办法。 我希望每个人都能帮助我。谢谢 环境: initdb(PostgreSQL)10.10 操作系统:uname-Linux DL2100 3.10.38#1 SMP构建-gitb1820a8 x86#U 64 GNU/Linux 在src/backend/access/transam/xlog.c中的BootStr

运行命令时出现问题:
sudo-su user\u test./pgsql/bin/initdb-D/example/folder

我从互联网上研究了很多信息来源,但没有找到解决办法。 我希望每个人都能帮助我。谢谢

环境:

  • initdb(PostgreSQL)10.10
  • 操作系统:uname-Linux DL2100 3.10.38#1 SMP构建-gitb1820a8 x86#U 64 GNU/Linux

src/backend/access/transam/xlog.c
中的
BootStrapXLOG
中抛出错误:

/*
*生成一个随机的nonce。这用于以下身份验证请求:
*将失败,因为用户不存在。nonce用于创建
*取而代之的是对不存在的用户的真实密码挑战
*一个实际存储的密码。
*/
if(!pg_backend_random(模拟身份验证,模拟身份验证)
电子报告(恐慌,
(错误代码(错误代码内部错误),
errmsg(“无法生成机密授权令牌”);
src/backend/utils/misc/backend\u random.c
表示:

函数的作用是:用随机字节填充缓冲区。正常地 它只是围绕pg_strong_random()的一个薄薄的包装,但在编译时 使用--disable strong random,我们提供了一个内置实现。 因此,PostgreSQL似乎构建在一个具有强随机数源的系统上(如果您不在Windows上,则为OpenSSL或
/dev/uradom
),但该功能在当前系统上无法运行

  • 尝试最新的v10小版本(目前为10.15)——可能有一个bug已经修复

  • 运行
    pg\u config--configure
    检查PostgreSQL是否是用openssl构建的

  • OpenSSL还使用
    /dev/uradom
    ,因此随机数的来源可能存在问题;在那里调查

如果全部失败,则从源代码构建PostgreSQL并使用

/configure--禁用强随机。。。

它工作得很好。非常感谢你,@Laurenz-Albe

selecting default max_connections … 100
selecting default shared_buffers … 128MB
selecting default timezone … Europe/Helsinki
selecting dynamic shared memory implementation … posix
creating configuration files … ok
running bootstrap script … 2020-11-03 11:52:56.303 EET [3928] DEBUG: invoking IpcMemoryCreate(size=148545536)
2020-11-03 11:52:56.303 EET [3928] DEBUG: mmap(148897792) with MAP_HUGETLB failed, huge pages disabled: Cannot allocate memory
2020-11-03 11:52:56.315 EET [3928] DEBUG: SlruScanDirectory invoking callback on pg_notify/0000
2020-11-03 11:52:56.315 EET [3928] DEBUG: removing file "pg_notify/0000"
2020-11-03 11:52:56.316 EET [3928] DEBUG: dynamic shared memory system will support 288 segments
2020-11-03 11:52:56.316 EET [3928] DEBUG: created dynamic shared memory control segment 1852866650 (6928 bytes)
2020-11-03 11:52:56.319 EET [3928] PANIC: could not generate secret authorization token
Aborted
child process exited with exit code 134```