Postgresql 9.6 InitDB失败

时间:2017-10-23 19:20:19

标签: postgresql rhel rhel7 postgresql-9.6

每当我尝试运行下面的命令时,它始终在RHEL7上失败。我已经尝试过另一个类似的操作系统(更新),但它并没有这样做,只是有效。

我查看了目录的权限,禁用了selinux(Just incase)并查看了区域设置,但这些设置与我的其他服务器的设置相匹配。

/usr/pgsql-9.6/bin/postgresql96-setup initdb

日志输出:

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.

fixing permissions on existing directory /var/lib/pgsql/9.6/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 64MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... < 2017-10-23 20:13:54.035 BST > LOG:  invalid value for parameter "lc_messages": "en_US.UTF-8"
< 2017-10-23 20:13:54.035 BST > LOG:  invalid value for parameter "lc_monetary": "en_US.UTF-8"
< 2017-10-23 20:13:54.035 BST > LOG:  invalid value for parameter "lc_numeric": "en_US.UTF-8"
< 2017-10-23 20:13:54.035 BST > LOG:  invalid value for parameter "lc_time": "en_US.UTF-8"
< 2017-10-23 20:13:54.035 BST > FATAL:  configuration file "/var/lib/pgsql/9.6/data/postgresql.conf" contains errors
child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/pgsql/9.6/data"

3 个答案:

答案 0 :(得分:0)

系统似乎无法将fo:table-caption区域设置识别为有效。

您是否已应用任何步骤来最小化已安装的区域设置集?您en_US.UTF-8文件的大小是多少?它应该在100 MiB左右。您也可以将其与全新安装进行比较,以确保(/usr/lib/locale/locale-archive不适用于此文件)。

答案 1 :(得分:0)

在Windows 10安装程序中运行并选择“美国英语”作为我的语言环境时,我看到参数为Dts.Variables["User::FirstThreeCharsOfMonthNameUpper"].Value = DateTime.Now.ToString("MMM").ToUpper(); ,即:

English_United States.1252

对我来说,我的initdb也失败了,因为我选择了lc_messages = 'English_United States.1252' lc_monetary = 'English_United States.1252' lc_numeric = 'English_United States.1252' lc_time = 'English_United States.1252' 语言环境选项,它只是一个空字符串。但是,选择此选项时,数据库已启动。我不知道这是否可以解决您的特定问题,但也许可以帮助其他人!

答案 2 :(得分:0)

我遇到了这个问题,它似乎是由缺少语言环境引起的。我的Postgres配置文件正在使用en_GB.utf8

通过安装语言环境解决:

localedef -i en_GB -c -f UTF-8 -A /usr/share/locale/locale.alias en_GB.UTF-8

并将LANG环境变量设置为en_GB.utf8


我在Postgres Docker image docs中找到了此修复程序(“语言环境自定义”部分)。