- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章postgresql初始化之initdb的使用详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
initdb 官网 。
initdb创建了一个新的PostgreSQL数据库集群。数据库集群是由单个服务器实例管理的数据库集合.
创建数据库集群包括数据库所在的目录、生成共享目录表(属于整个集群而不是任何特定数据库的表)以及创建template1和postgres数据库。稍后创建新数据库时,将复制template1数据库中的所有内容(因此,template1中安装的任何内容都会自动复制到以后创建的每个数据库中。),postgres数据库是供用户、实例程序和第三方应用程序使用的默认数据库.
尽管initdb将尝试创建指定的数据目录,但如果所需数据目录的父目录是根目录,则它可能没有权限。要再这样的设置中初始化,需要创建一个空数据目录作为根目录,然后使用chown将目录的所有权分配给数据库用户账户,然后su成为运行initdb的数据库用户.
initdb必须作为拥有服务器进程的用户运行,因为服务器需要访问initdb创建的文件和目录。由于服务器不能作为root用户运行,所以也不能作为root用户运行initdb.
出于安全原因,在默认情况下,initdb创建的新集群只能由集群所有者访问。——allow-group-access选项允许与集群所有者属于同一组的任何用户读取集群中的文件。这对于作为非特权用户执行备份非常有用.
initdb初始化数据库集群的默认语言环境和字符集编码。在创建数据库时,可以分别设置字符集编码、排序顺序(LC_COLLATE)和字符集类(LC_CTYPE,例如upper、lower、digit)。initdb确定template1数据库的那些设置,这些设置将作为所有其他数据库的默认设置.
要更改默认的排序顺序或字符集类,请使用——lc-collate和——lc-ctype选项。除了C或POSIX之外的排序顺序也会造成性能损失。由于这些原因,在运行initdb时选择正确的语言环境是很重要的.
其余的语言环境类别可以在服务器启动后更改。还可以使用——locale设置所有语言环境类别的默认值,包括排序顺序和字符集类。所有服务器语言环境值(lc_*)都可以通过SHOW All来显示.
常用参数:
-D directory/--pgdata=directory此选项指定应该存储数据库集群的目录。必传。也可以设置环境变量PGDATA来替换-D选项.
-U username/--username=username选择数据库superuser的用户名。这默认为运行initdb的用户的名称.
-E encoding/--encoding=encoding选择模板数据库的编码。这也是您稍后创建的任何数据库的默认编码, 。
--lc-collate/--lc-ctype更改默认的排序顺序或字符集类.
-k/--data-checksums在数据页上使用校验和来帮助检测I/O系统的损坏,否则系统将是静默的。启用校验和可能会导致显著的性能损失。如果设置,则计算所有数据库中所有对象的校验和。所有校验和失败将在pg_stat_database视图中报告.
所以postgresql初始化可能使用的命令是:
1
2
|
su - pguser001 -c
"/u01/pgsql/bin/initdb --username=pguser001 --encoding=UTF8 --lc-collate=C --lc-ctype=en_US.
utf8 --data-checksums -D /data"
|
注:如果数据目录已经存在且初始化了的话,initdb将不会运行.
补充:postgresql 初始化 initdb 出现No such file or directory 。
1.initdb出现 。
1
|
FATAL: could
not
open
extension control file
"/opt/HighGo/Develop/share/postgresql/extension/file_fdw.control"
:
No
such file
or
directory.
|
如下:
1
|
me@me:/opt/HighGo/Develop/bin$ <span style=
"color:rgb(51,51,255);"
>./initdb -D ../data -W</span>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
The files belonging
to
this
database
system will be owned
by
user
"me"
.
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"
.
creating directory ../data ... ok
creating subdirectories ... ok
selecting
default
max_connections ... 100
selecting
default
shared_buffers ... 32MB
creating configuration files ... ok
creating template1
database
in
../data/base/1 ... ok
initializing pg_authid ... ok
Enter new systemuser
password
:
Enter it again:
Enter syssao
password
:
Enter it again:
Enter syssso
password
:
Enter it again:
setting dba
password
... ok
initializing dependencies ... ok
<span style=
"color:rgb(204,0,0);"
>creating system views ... FATAL: could
not
open
extension control file
"/opt/HighGo/Develop/share/postgresql/extension/file_fdw.control"
:
No
such file
or
directory
STATEMENT: /*</span>
* PostgreSQL System Views
*
* Copyright (c) 1996-2012, PostgreSQL
Global
Development
Group
*
* src/backend/catalog/system_views.sql
|
原因是file_fdw.control插件没有安装.进入源代码目录下的contrib目录下.找到file_fdw文件进入其中,编译安装.
1
2
|
make
make install
|
同理出现:
1
2
|
creating system views ... FATAL:
could
not
open
extension control file
"/opt/HighGo/Develop/share/postgresql/extension/dblink.control"
:
No
such file
or
directory.
|
在contrib目录下进入到dblink文件中,make,make install 。
所以如果出现一些其他的hstore.control 等.相应的安装上. 。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我。如有错误或未考虑完全的地方,望不吝赐教.
原文链接:https://blog.csdn.net/qq_35462323/article/details/104059818 。
最后此篇关于postgresql初始化之initdb的使用详解的文章就讲到这里了,如果你想了解更多关于postgresql初始化之initdb的使用详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在 Circleci 上使用 docker-compose 来启动一个 postgres 容器,其中包含一堆安装在 /docker-entrypoint-initdb.d/ 上的 sql 文件。
我之前使用安装程序安装了 alfresco 社区版,但我的服务器最终用完了硬盘空间,一切都崩溃了。我无法运行卸载程序(出现奇怪的权限问题)。 所以我删除了整个安装文件夹并尝试重新安装。当我以 root
我是 Airflow 新手。我按照此处提供的说明进行操作:https://www.youtube.com/watch?v=SYOUbiGtGiU&t=49s 第 1 步:控制面板 |程序和功能 |打开
我刚开始使用 Airflow ,我使用了命令:airflow initdb根据需要启动 Airflow 数据库。 但我偶然发现了错误:import cattr File "/home/adrienb/
根据https://hub.docker.com/_/postgres的“初始化脚本”部分,我在docker-entrypoint-initdb.d中有两个文件: init-db.sh backup.
我正在尝试初始化我的docker arangodb,但一直出现连接错误:我尝试将服务器端点更改为http + tcp:// .....,但错误仍然存在,这可能是怎么回事? docker-compo
我已在基于 oraclelinux:7.1 镜像(Docker 版本 1.12.5)的 docker 容器中安装了 Oracle 12c。不过有一个小问题。运行容器时,目录/docker-entryp
我有一个本地Openshift实例,在该实例中,我尝试使用helm安装Sentry: helm install --name sentry --wait stable/sentry。 除了Postgr
我在 postgres 后端遇到 Airflow 初始化问题 Ubuntu:18.04.1 Airflow :v1.10.6 Postgres:10.10 Python 3.6 当我运行时 airfl
每当我尝试运行下面的命令时,它在 RHEL7 上总是失败。我试过另一个类似的操作系统(较新),但它不这样做,只是工作。 我查看了目录的权限,禁用了 selinux(以防万一),还查看了区域设置,但是这
如何使用 initdb 为 PostgreSQL 创建临时数据库?另外,如何使用虚拟数据填充它以及如何在使用后删除它? 我有一个完整的数据库模式。我不想一张一张地创建临时表。使用 initdb,我希望
我已经使用 EnterpriseDB 安装安装了 PostgreSQL。 我运行了 sudo ./postgresql-9.3.5-3-osx.app/Contents/MacOS/installbu
我正致力于在 Linux 系统(CentOS - RedHat - Fedora)上的 PostgreSQL 9.x 中创建一个数据库集群(单一数据库)。我已经安装了正确的 PostgreSQL 包(
我正在使用 mysql docker 容器并将初始化脚本添加到 docker-entrypoint-initdb.d 中,如下所述:https://hub.docker.com/_/mysql/ (初
我在 docker-compose.yml 中使用两个服务对一个应用程序进行 docker 化:一个是从 php:7.3.28-apache 构建的网络图像,另一个是从 postgres:11.12-
我关注 http://book.cakephp.org/2.0/en/tutorials-and-examples/simple-acl-controlled-application/part-two
我在名为 engdados 的 Anaconda 环境之一中安装了 Airflow 。当我执行命令 Airflow initdb 时,我收到以下错误:airflow initdb: cannot im
“airflow initdb”命令和“airflow resetdb”命令之间究竟有什么区别? 真的有必要有 2 个不同的命令吗? 什么时候使用一种和另一种比较合适? doc说... airflow
我按照文档安装了 Apache-airflow。 https://airflow.apache.org/docs/stable/start.html 当我执行airflow initdb时,每次都会出
生成mariadb图像时,我想执行脚本以及初始化数据库模式。 我将这些文件放在/docker-entrypoint-initdb.d下 模式初始化按预期工作 Shell脚本包含apt-get inst
我是一名优秀的程序员,十分优秀!