精华内容
下载资源
问答
  • initdb
    千次阅读
    2018-03-15 16:35:23

    os:centos 6.8
    postgresql:10.3

    查看initdb的参数

    $ /usr/pgsql-10/bin/initdb --help
    initdb initializes a PostgreSQL database cluster.
    
    Usage:
      initdb [OPTION]... [DATADIR]
    
    Options:
      -A, --auth=METHOD         default authentication method for local connections
          --auth-host=METHOD    default authentication method for local TCP/IP connections
          --auth-local=METHOD   default authentication method for local-socket connections
     [-D, --pgdata=]DATADIR     location for this database cluster
      -E, --encoding=ENCODING   set default encoding for new databases
          --locale=LOCALE       set default locale for new databases
          --lc-collate=, --lc-ctype=, --lc-messages=LOCALE
          --lc-monetary=, --lc-numeric=, --lc-time=LOCALE
                                set default locale in the respective category for
                                new databases (default taken from environment)
          --no-locale           equivalent to --locale=C
          --pwfile=FILE         read password for the new superuser from file
      -T, --text-search-config=CFG
                                default text search configuration
      -U, --username=NAME       database superuser name
      -W, --pwprompt            prompt for a password for the new superuser
      -X, --waldir=WALDIR       location for the write-ahead log directory
    
    Less commonly used options:
      -d, --debug               generate lots of debugging output
      -k, --data-checksums      use data page checksums
      -L DIRECTORY              where to find the input files
      -n, --no-clean            do not clean up after errors
      -N, --no-sync             do not wait for changes to be written safely to disk
      -s, --show                show internal settings
      -S, --sync-only           only sync data directory
    
    Other options:
      -V, --version             output version information, then exit
      -?, --help                show this help, then exit
    
    If the data directory is not specified, the environment variable PGDATA
    is used.
    
    Report bugs to <pgsql-bugs@postgresql.org>.
    
    

    初始化
    添加了 --debug --data-checksums

    $ /usr/pgsql-10/bin/initdb -D /var/lib/pgsql/10/data -U postgres \
    -W -E UTF8 --locale=zh_CN.UTF-8 \
    --debug --data-checksums
    
    
    

    未添加 --debug --data-checksums

    $ /usr/pgsql-10/bin/initdb -D /var/lib/pgsql/10/data -U postgres \
    -W -E UTF8 --locale=zh_CN.UTF-8    
    
    
    
    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 "zh_CN.UTF-8".
    initdb: could not find suitable text search configuration for locale "zh_CN.UTF-8"
    The default text search configuration will be set to "simple".
    
    Data page checksums are disabled.
    
    Enter new superuser password: 
    Enter it again: 
    
    fixing permissions on existing directory /var/lib/pgsql/10/data ... ok
    creating subdirectories ... ok
    selecting default max_connections ... 100
    selecting default shared_buffers ... 128MB
    selecting dynamic shared memory implementation ... posix
    creating configuration files ... ok
    running bootstrap script ... ok
    performing post-bootstrap initialization ... ok
    syncing data to disk ... ok
    
    WARNING: enabling "trust" authentication for local connections
    You can change this by editing pg_hba.conf or using the option -A, or
    --auth-local and --auth-host, the next time you run initdb.
    
    Success. You can now start the database server using:
    
        /usr/pgsql-10/bin/pg_ctl -D /var/lib/pgsql/10/data -l logfile start
        
    

    默认的一些参数

    $ egrep ^[a-z] ./postgresql.conf 
    max_connections = 100			# (change requires restart)
    shared_buffers = 128MB			# min 128kB
    dynamic_shared_memory_type = posix	# the default is the first option
    log_destination = 'stderr'		# Valid values are combinations of
    logging_collector = on			# Enable capturing of stderr and csvlog
    log_directory = 'log'			# directory where log files are written,
    log_filename = 'postgresql-%a.log'	# log file name pattern,
    log_truncate_on_rotation = on		# If on, an existing log file with the
    log_rotation_age = 1d			# Automatic rotation of logfiles will
    log_rotation_size = 0			# Automatic rotation of logfiles will
    log_line_prefix = '%m [%p] '		# special values:
    log_timezone = 'PRC'
    datestyle = 'iso, ymd'
    timezone = 'PRC'
    lc_messages = 'zh_CN.UTF-8'			# locale for system error message
    lc_monetary = 'zh_CN.UTF-8'			# locale for monetary formatting
    lc_numeric = 'zh_CN.UTF-8'			# locale for number formatting
    lc_time = 'zh_CN.UTF-8'				# locale for time formatting
    default_text_search_config = 'pg_catalog.simple'
    
    

    登录postgresql,查看信息

    $ psql
    psql (10.3)
    Type "help" for help.
    
    postgres=# select version();
                                                     version                                                 
    ---------------------------------------------------------------------------------------------------------
     PostgreSQL 10.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18), 64-bit
    (1 row)
    
    postgres=# \l
                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges   
    -----------+----------+----------+-------------+-------------+-----------------------
     postgres  | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | 
     template0 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     template1 | postgres | UTF8     | zh_CN.UTF-8 | zh_CN.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
    (3 rows)
    
    
    
    postgres=# select * from pg_collation ;
    
           collname        | collnamespace | collowner | collprovider | collencoding |      collcollate      |       collctype       | collversion 
    -----------------------+---------------+-----------+--------------+--------------+-----------------------+-----------------------+-------------
     default               |            11 |        10 | d            |           -1 |                       |                       | 
     C                     |            11 |        10 | c            |           -1 | C                     | C                     | 
     POSIX                 |            11 |        10 | c            |           -1 | POSIX                 | POSIX                 | 
     ucs_basic             |            11 |        10 | c            |            6 | C                     | C                     | 
     aa_DJ                 |            11 |        10 | c            |            8 | aa_DJ                 | aa_DJ                 | 
     aa_DJ.iso88591        |            11 |        10 | c            |            8 | aa_DJ.iso88591        | aa_DJ.iso88591        | 
     aa_DJ.utf8            |            11 |        10 | c            |            6 | aa_DJ.utf8            | aa_DJ.utf8            | 
     aa_ER                 |            11 |        10 | c            |            6 | aa_ER                 | aa_ER                 | 
     aa_ER@saaho           |            11 |        10 | c            |            6 | aa_ER@saaho           | aa_ER@saaho           | 
     aa_ER.utf8            |            11 |        10 | c            |            6 | aa_ER.utf8            | aa_ER.utf8            | 
     aa_ER.utf8@saaho      |            11 |        10 | c            |            6 | aa_ER.utf8@saaho      | aa_ER.utf8@saaho      | 
     aa_ET                 |            11 |        10 | c            |            6 | aa_ET                 | aa_ET                 | 
    
     中间省略若干行
     zh-x-icu              |            11 |        10 | i            |           -1 | zh                    | zh                    | 49.192.0.41
     zh-hans-x-icu         |            11 |        10 | i            |           -1 | zh_Hans               | zh_Hans               | 49.192.0.41
     zh-hans-cn-x-icu      |            11 |        10 | i            |           -1 | zh_Hans_CN            | zh_Hans_CN            | 49.192.0.41
     zh-hans-hk-x-icu      |            11 |        10 | i            |           -1 | zh_Hans_HK            | zh_Hans_HK            | 49.192.0.41
     zh-hans-mo-x-icu      |            11 |        10 | i            |           -1 | zh_Hans_MO            | zh_Hans_MO            | 49.192.0.41
     zh-hans-sg-x-icu      |            11 |        10 | i            |           -1 | zh_Hans_SG            | zh_Hans_SG            | 49.192.0.41
     zh-hant-x-icu         |            11 |        10 | i            |           -1 | zh_Hant               | zh_Hant               | 49.192.0.41
     zh-hant-hk-x-icu      |            11 |        10 | i            |           -1 | zh_Hant_HK            | zh_Hant_HK            | 49.192.0.41
     zh-hant-mo-x-icu      |            11 |        10 | i            |           -1 | zh_Hant_MO            | zh_Hant_MO            | 49.192.0.41
     zh-hant-tw-x-icu      |            11 |        10 | i            |           -1 | zh_Hant_TW            | zh_Hant_TW            | 49.192.0.41
     zu-x-icu              |            11 |        10 | i            |           -1 | zu                    | zu                    | 49.192.0.41
     zu-za-x-icu           |            11 |        10 | i            |           -1 | zu_ZA                 | zu_ZA                 | 49.192.0.41
    (1162 rows)
    
    
    更多相关内容
  • InitDB

    2021-03-27 17:24:41
    InitDB-master.zip,InitDB-master,disk,DiskManager.cc,lock,LockManager.cc,README.md,net,Server.cc,include,Configure.h,disk,DiskManager.h,lock,LockManager.h,Rid.h,net,Response.h,Server.h,Request.h,page,...
  • initdb— 创建一个新的KingbaseES数据库集簇。initdb创建一个新的KingbaseES数据库集簇。一个数据库集簇是由一个单一服务器实例管理的数据库的集合。一个数据库集簇的创建包括创建存放数据库数据的目录、生成共享...

    目录

    2.1. 简介:

    2.2. 命令行参数:

    2.3. 参数说明:

    2.4. 环境变量:

    2.5. 错误信息诊断:

    2.6. 备注:

    2.7. 参考:


    2.1. 简介:

    initdb— 创建一个新的KingbaseES数据库集簇。

    initdb创建一个新的KingbaseES数据库集簇。一个数据库集簇是由一个单一服务器实例管理的数据库的集合。

    一个数据库集簇的创建包括创建存放数据库数据的目录、生成共享目录表(属于整个集簇而不是任何特定数据库的表)并且创建template0template1securitytest数据库。当后来创建一个新的数据库时,任何在template1数据库中的东西都会被复制(因此,任何已安装在template1中的东西都会被自动地复制到后来创建的每一个数据库中)。test数据库是便于用户、工具和第三方应用使用的默认数据库。

    尽管initdb将尝试创建指定的数据目录,它可能没有权限(如果想要的数据目录的父目录被根用户拥有)。要在这样一种设置中初始化,作为 root 创建一个空数据目录,然后使用chown将该目录赋予给数据库用户账户,再然后su成为该数据库用户并运行initdb

    initdb必须以将拥有该服务器进程的用户运行,因为该服务器需要访问initdb创建的文件和目录。因为该服务器不能作为 root 运行,你不能以 root 运行initdb(事实上它会拒绝这样做)。

    由于安全原因,由initdb创建的新集簇默认将只能由集簇拥有者访问。--allow-group-access选项允许与集簇拥有者同组的任何用户读取集簇中的文件。这对非特权用户执行备份很有用。

    initdb初始化该数据库集簇的默认区域和字符集编码。当一个数据库被创建时,其字符集编码、排序顺序(LC_COLLATE)和字符集类(LC_CTYPE,例如大写、小写、数字)可以被独立设置。initdbtemplate1数据库确定那些设置,它们将作为所有其他数据库的默认值。

    要修改默认排序顺序或字符集类,使用--lc-collate--lc-ctype选项。除CPOSIX之外的排序顺序会有性能损失。由于这些原因,在运行initdb时选择正确的区域很重要。

    余下的区域分类可以在服务器启动之后改变。你也可以使用--locale来为所有区域分类设置默认值,包括排序顺序和字符集类。所有服务器区域值(lc_*)可以通过SHOW ALL显示。详见 区域支持 。

    要修改默认编码,使用--encoding。详见 字符集 .

    2.2. 命令行参数:

    initdb [option ...] [ --kingbase_data | -D ] directory

    2.3. 参数说明:

    -A authmethod

    --auth=authmethod

    这个选项为本地用户指定在sys_hba.conf中使用的默认认证方法(hostlocal行)。initdb将使用指定的认证方法为非复制连接以及复制连接填充sys_hba.conf项。

    为了安装方便,md5是默认值。

    --auth-host=authmethod

    这个选项为通过 TCP/IP 连接的本地用户指定在sys_hba.conf中使用的认证方法(host行)。

    --auth-local=authmethod

    这个选项为通过 Unix 域套接字连接的本地用户指定在sys_hba.conf中使用的认证方法(local行)。

    -D directory

    --kingbase_data=directory

    这个选项指定数据库集簇应该存放的目录。这是initdb要求的唯一信息,但是你可以通过设定KINGBASE_DATA环境变量来避免书写它,这很方便因为之后数据库服务器(kingbase)可以使用同一个变量来找到数据库目录。

    -E encoding

    --encoding=encoding

    选择模板数据库的编码。这也将是后来创建的任何数据库的默认编码,除非你覆盖它。默认值来自于区域,或者如果该值不起作用则为SQL_ASCII。KingbaseES服务器所支持的字符集在 字符集 中描述。

    -e algorithm

    --encrypt-algorithm=algorithm

    这个选项指定数据库集簇使用的透明加密算法,默认为SM4(可选RC4)

    -g

    --allow-group-access

    允许与集簇拥有者同组的用户读取initdb创建的所有集簇文件。 Windows会忽略此选项,因为它不支持POSIX样式的组权限。

    -k

    --data-checksums

    在数据页面上使用校验码来帮助检测 I/O 系统造成的损坏。启用校验码将会引起显著的性能损失。如果被设置,在所有数据库中会为所有对象计算校验码。 所有的检验故障均会在sys_stat_database视图中被报告。

    --locale=locale

    为数据库集簇设置默认区域。如果这个选项没有被指定,该区域将从initdb所运行的环境中继承。区域支持在 区域支持 中描述。

    --lc-collate=locale

    --lc-ctype=locale

    --lc-messages=locale

    --lc-monetary=locale

    --lc-numeric=locale

    --lc-time=locale

    --locale相似,但是只在指定的分类中设置区域。

    -m

    设置KingbaseES V8.6 初始化时的兼容模式。默认情况下(初始化时不设置此参数)为兼容Oracle模式。 支持四种参数值: pg , oracle , 0 , 1 ;其中 pg 和 0 表示兼容PostgreSQL模式, oracle 和 1 表示兼容Oracle模式。 注意:参数值 pg 和 oracle 不区分大小写。

    --no-locale

    等效于--locale=C

    -N

    --no-sync

    默认情况下,initdb将等待所有文件被安全地写到磁盘之后再返回。这个选项会导致initdb不等待就返回,后续操作系统如果崩溃可能损坏数据目录。这个选项不适用于生产环境。

    --pwfile=filename

    initdb从一个文件读取数据库超级用户的口令。该文件的第一行被当作口令。

    -S

    --sync-only

    安全地把所有数据库文件写入到磁盘并退出。这个指令不会执行任何数据库初始化操作。

    -T config

    --text-search-config=config

    设置默认的文本搜索配置。详见参数 default_text_search_config

    -U username

    --username=username

    选择数据库超级用户的用户名。这个的默认值是实际运行initdb的用户的名称。超级用户的名字是什么真的不重要,但是你可以选择保留常用的名字kingbase,即使操作系统的用户名不同。

    --pwprompt

    initdb提示要求为数据库超级用户给予一个口令。如果你没有计划使用口令认证,这就不重要。否则在你设置一个口令之前你就无法使用口令认证。

    -X directory

    --waldir=directory

    这个选项指定预写式日志会被存储在哪个目录中。

    --wal-segsize=size

    设置WAL段尺寸,以兆字节为单位。这是WAL日志中每个文件的尺寸。默认的尺寸为16兆字节。该值必须位于2的1次幂和1024次幂(兆字节)之间。这个选项只能在初始化期间设置,并且之后不能更改。

    调整这个值来控制WAL日志传送或者归档可能会有用。此外,在有大量WAL的数据库中,每个目录中数量巨大的WAL文件可能会成为性能和管理问题。增加WAL文件尺寸将会降低WAL文件的数量。

    --enable-ci

    启用字符串大小写不敏感比较。设置此参数则以大小写不敏感的方式进行字符串比较。

    -t

    --aud-tblspc-enc

    允许审计表空间加密

    -K KEY

    --enckey=KEY

    设置审计表空间加密密钥

    -M

    --passwordcheck

    允许开启密码复杂度检查

    -I

    --identity-pwdexp

    允许开启用户密码过期检查

    --saoname=newsaoname

    对数据库审计员重命名,未设置时默认为 sao 。

    --ssoname=newssoname

    对数据库安全员重命名,未设置时默认为 sso 。

    --block-size=size

    设置表块大小,以千字节为单位。默认的尺寸为8千字节。该值必须是2的整数次幂,并且在1到32之间。这个选项只能在初始化期间设置,并且之后不能更改。

    其他较少使用的选项:

    -d

    --debug

    打印来自引导后端的调试输出以及详细消息。引导后端被程序initdb用来创建目录表。这个选项会生成大量详细流程输出。

    -L directory

    指定initdb应从哪里寻找输入文件来初始化数据库集簇。通常无需设置。需要显式地指定它们的位置时,会进行告知。

    -n

    --no-clean

    默认情况下,当initdb确定已发生错误阻止它完整地创建数据库集簇时,会移除本次执行创建的任何文件。这个选项会禁止这种移除,用于调试场景。

    其他选项:

    -V

    --version

    打印initdb版本并退出。

    -?

    --help

    显示有关initdb命令行参数的帮助并退出。

    2.4. 环境变量:

    KINGBASE_DATA

    指定数据库集簇应该被存放的目录,可以使用-D选项覆盖。

    SYS_COLOR

    指定是否在诊断消息中使用颜色。可能取值为alwaysauto和 never

    TZ

    指定创建的数据集簇的默认时区。值应该是一个完整的时区名称(见 时区 )。

    和大部分其他KingbaseES工具相似,这个工具也使用libkci。

    2.5. 错误信息诊断:

    2.6. 备注:

    initdb可以通过sys_ctl initdb被调用。

    2.7. 参考:

    sys_ctl , kingbase

    展开全文
  • 该软件包已移至fl-initdb根据连接字符串和骨干模型自动创建并填充数据库用法 import User from '../models/User'import initdb from 'fl-initdb'initdb({ User, databaseUrl: process.env.DATABASE_URL, modelsDir: ...
  • initdb: error: The program "postgres" was found by "D:/Program Files/*/initdb.exe" but was not the same version as initdb. Check your installation.

    pg作为号称全世界最先进的数据,肯定是需要上手玩耍一把的,于是我就上了官网下载了最新版本的解压版14.0 :PostgreSQL: The world's most advanced open source database

     在初始化db的时候,一直报如下错误

    PS D:\Program Files\pgsql-14.0\bin> initdb -U admin -W --locale=C -E UTF8 -D "D:\ProgramData\Pg1"
    initdb: error: The program "postgres" was found by "D:/Program Files/pgsql-14.0/bin/initdb.exe"
    but was not the same version as initdb.
    Check your installation.

    查阅资料一波,发现14.0的版太新了,中文社区也没有啥介绍,无奈之下退个低版本尝试一下,

    于是又下载了13.4的解压版本,

    在初始化db的时候,同样报如下错误

    PS D:\Program Files\pgsql-13.4\bin> initdb -U admin -W --locale=C -E UTF8 -D "D:\ProgramData\Pg1"
    initdb: error: The program "postgres" was found by "D:/Program Files/pgsql-13.4/bin/initdb.exe"
    but was not the same version as initdb.
    Check your installation.

    差点忍不住去要去看一下代码,可是好久没怎么看c代码的我还是犹豫了,

    然后去翻看官方文档,看到这么一句话

    简单翻译一下就是说,不是专家或者特别需要才需要下载这种二进制的代码直接搞,否则应该是使用安装器来替代 

    于是我又跑去下载了installer的版本来安装,结果发现还是一样的结果,o(╥﹏╥)o

     所以经验告诉我们,跟是否解压没啥关系,没什么问题不是先换个低版本的不能解决的吧

    于是继续降低版本,降到 12.8 (链接:        https://www.enterprisedb.com/download-postgresql-binaries

    还是解压版,见证奇迹的时候到了,竟然就这样就行了 

    附上初始化命令:("D:\ProgramData\Pg"是我个人定义的数据存储位置)

     D:\Program Files\PostgreSQL\pgsql\bin> .\initdb.exe -U admin -W --locale=C -E UTF8 -D "D:\ProgramData\Pg"

    然后就是启动和关闭数据库服务啦:

    pg_ctl -D "D:\ProgramData\Pg" -l logfile start
    pg_ctl -D "D:\ProgramData\Pg" -l logfile stop

     success!!!

    能够正常启动关闭之后,那接下来就很舒服了,连接sever,进行各种创表、写表、读表、删表。。。反正够大家玩上一段时间了~

    好了,以上就是我如何解决高版本初始化db失败的问题的解决方案了,这就是花了我三天的下班时间才搞出来的没有解决问题又解决问题的方案啦~~

    欢迎大家评论进行交流~~

    展开全文
  • initdb locale 的理解

    千次阅读 2019-09-09 11:26:35
    US.UTF-8" LC_ALL= initdb -D /data/pgsql_10.tmp1 使用默认的os --locale # su - postgres $ initdb -D /data/pgsql_10.tmp1 The files belonging to this database system will be owned by user "postgres"....

    os: ubuntu 16.04
    db: postgresql 10.6

    linux locale

    # lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 16.04.5 LTS
    Release:        16.04
    Codename:       xenial
    
    
    # locale
    LANG=en_US.UTF-8
    LANGUAGE=
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER="en_US.UTF-8"
    LC_NAME="en_US.UTF-8"
    LC_ADDRESS="en_US.UTF-8"
    LC_TELEPHONE="en_US.UTF-8"
    LC_MEASUREMENT="en_US.UTF-8"
    LC_IDENTIFICATION="en_US.UTF-8"
    LC_ALL=
    
    

    initdb -D /data/pgsql_10.tmp1

    使用默认的os --locale

    # su - postgres
    $ initdb -D /data/pgsql_10.tmp1
    
    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.
    
    fixing permissions on existing directory /data/pgsql_10.tmp1 ... ok
    creating subdirectories ... ok
    selecting default max_connections ... 100
    selecting default shared_buffers ... 128MB
    selecting dynamic shared memory implementation ... posix
    creating configuration files ... ok
    running bootstrap script ... ok
    performing post-bootstrap initialization ... ok
    syncing data to disk ... ok
    
    WARNING: enabling "trust" authentication for local connections
    You can change this by editing pg_hba.conf or using the option -A, or
    --auth-local and --auth-host, the next time you run initdb.
    
    Success. You can now start the database server using:
    
        pg_ctl -D /data/pgsql_10.tmp1 -l logfile start
    
    

    关键信息

    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".
    
    

    启动数据库查看

    $ pg_ctl start -D /data/pgsql_10.tmp1
    
    waiting for server to start....2019-09-09 10:44:14.027 CST [3337] LOG:  listening on IPv4 address "127.0.0.1", port 5432
    2019-09-09 10:44:14.028 CST [3337] LOG:  could not create IPv6 socket for address "::1": Address family not supported by protocol
    2019-09-09 10:44:14.031 CST [3337] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
    2019-09-09 10:44:14.046 CST [3341] LOG:  database system was shut down at 2019-09-09 10:44:01 CST
    2019-09-09 10:44:14.050 CST [3337] LOG:  database system is ready to accept connections
     done
    server started
    $
    $
    $ psql
    psql (10.6)
    Type "help" for help.
    
    postgres=# \l
                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
    -----------+----------+----------+-------------+-------------+-----------------------
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
     template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
    (3 rows)
    
    

    initdb -D /data/pgsql_10.tmp2 -E UTF8 --locale=en_US.UTF-8

    指定 --locale

    $ initdb -D /data/pgsql_10.tmp2 \
    -E UTF8 \
    --locale=en_US.UTF-8 \
    ;
    
    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 text search configuration will be set to "english".
    
    Data page checksums are disabled.
    
    fixing permissions on existing directory /data/pgsql_10.tmp2 ... ok
    creating subdirectories ... ok
    selecting default max_connections ... 100
    selecting default shared_buffers ... 128MB
    selecting dynamic shared memory implementation ... posix
    creating configuration files ... ok
    running bootstrap script ... ok
    performing post-bootstrap initialization ... ok
    syncing data to disk ... ok
    
    WARNING: enabling "trust" authentication for local connections
    You can change this by editing pg_hba.conf or using the option -A, or
    --auth-local and --auth-host, the next time you run initdb.
    
    Success. You can now start the database server using:
    
        pg_ctl -D /data/pgsql_10.tmp2 -l logfile start
    
    

    关键信息

    The database cluster will be initialized with locale "en_US.UTF-8".
    The default text search configuration will be set to "english".
    
    

    启动数据库查看

    $ pg_ctl start -D /data/pgsql_10.tmp2
    waiting for server to start....2019-09-09 10:52:41.388 CST [3422] LOG:  listening on IPv4 address "127.0.0.1", port 5432
    2019-09-09 10:52:41.389 CST [3422] LOG:  could not create IPv6 socket for address "::1": Address family not supported by protocol
    2019-09-09 10:52:41.393 CST [3422] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
    2019-09-09 10:52:41.415 CST [3426] LOG:  database system was shut down at 2019-09-09 10:51:15 CST
    2019-09-09 10:52:41.419 CST [3422] LOG:  database system is ready to accept connections
     done
    server started
    $
    $
    $ psql
    psql (10.6)
    Type "help" for help.
    
    postgres=# \l
                                      List of databases
       Name    |  Owner   | Encoding |   Collate   |    Ctype    |   Access privileges
    -----------+----------+----------+-------------+-------------+-----------------------
     postgres  | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 |
     template0 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
     template1 | postgres | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/postgres          +
               |          |          |             |             | postgres=CTc/postgres
    (3 rows)
    
    

    initdb -D /data/pgsql_10.tmp3 -E UTF8 --locale=C

    指定 --locale=C

    $ initdb -D /data/pgsql_10.tmp3 \
    -E UTF8 \
    --locale=C \
    ;
    
    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 "C".
    The default text search configuration will be set to "english".
    
    Data page checksums are disabled.
    
    fixing permissions on existing directory /data/pgsql_10.tmp3 ... ok
    creating subdirectories ... ok
    selecting default max_connections ... 100
    selecting default shared_buffers ... 128MB
    selecting dynamic shared memory implementation ... posix
    creating configuration files ... ok
    running bootstrap script ... ok
    performing post-bootstrap initialization ... ok
    syncing data to disk ... ok
    
    WARNING: enabling "trust" authentication for local connections
    You can change this by editing pg_hba.conf or using the option -A, or
    --auth-local and --auth-host, the next time you run initdb.
    
    Success. You can now start the database server using:
    
        pg_ctl -D /data/pgsql_10.tmp3 -l logfile start
    
    

    关键信息

    The database cluster will be initialized with locale "C".
    The default text search configuration will be set to "english".
    
    

    启动数据库查看

    $ pg_ctl start -D /data/pgsql_10.tmp3
    waiting for server to start....2019-09-09 10:57:15.201 CST [3469] LOG:  listening on IPv4 address "127.0.0.1", port 5432
    2019-09-09 10:57:15.202 CST [3469] LOG:  could not create IPv6 socket for address "::1": Address family not supported by protocol
    2019-09-09 10:57:15.206 CST [3469] LOG:  listening on Unix socket "/tmp/.s.PGSQL.5432"
    2019-09-09 10:57:15.226 CST [3473] LOG:  database system was shut down at 2019-09-09 10:55:50 CST
    2019-09-09 10:57:15.230 CST [3469] LOG:  database system is ready to accept connections
     done
    server started
    $
    $
    $ psql
    psql (10.6)
    Type "help" for help.
    
    postgres=# \l
                                 List of databases
       Name    |  Owner   | Encoding | Collate | Ctype |   Access privileges
    -----------+----------+----------+---------+-------+-----------------------
     postgres  | postgres | UTF8     | C       | C     |
     template0 | postgres | UTF8     | C       | C     | =c/postgres          +
               |          |          |         |       | postgres=CTc/postgres
     template1 | postgres | UTF8     | C       | C     | =c/postgres          +
               |          |          |         |       | postgres=CTc/postgres
    (3 rows)
    
    

    创建 utf8 的数据库

    postgres=# create database db1 with encoding='UTF8' lc_collate='C' lc_ctype='en_US.UTF8';
    
    2019-09-09 11:13:26.929 CST [3565] ERROR:  new LC_CTYPE (en_US.UTF8) is incompatible with the LC_CTYPE of the template database (C)
    2019-09-09 11:13:26.929 CST [3565] HINT:  Use the same LC_CTYPE as in the template database, or use template0 as template.
    2019-09-09 11:13:26.929 CST [3565] STATEMENT:  create database db1 with encoding='UTF8' lc_collate='C' lc_ctype='en_US.UTF8';
    ERROR:  new LC_CTYPE (en_US.UTF8) is incompatible with the LC_CTYPE of the template database (C)
    HINT:  Use the same LC_CTYPE as in the template database, or use template0 as template.
    postgres=#
    postgres=#
    postgres=# create database db1 with encoding='UTF8' lc_collate='C' lc_ctype='en_US.UTF8' template='template1';
    
    2019-09-09 11:14:59.894 CST [3565] ERROR:  new LC_CTYPE (en_US.UTF8) is incompatible with the LC_CTYPE of the template database (C)
    2019-09-09 11:14:59.894 CST [3565] HINT:  Use the same LC_CTYPE as in the template database, or use template0 as template.
    2019-09-09 11:14:59.894 CST [3565] STATEMENT:  create database db1 with encoding='UTF8' lc_collate='C' lc_ctype='en_US.UTF8' template='template1';
    ERROR:  new LC_CTYPE (en_US.UTF8) is incompatible with the LC_CTYPE of the template database (C)
    HINT:  Use the same LC_CTYPE as in the template database, or use template0 as template.
    postgres=#
    
    

    指定 template=‘template0’ 就没有问题

    postgres=# create database db1 with encoding='UTF8' lc_collate='C' lc_ctype='en_US.UTF8' template='template0';
    
    postgres=#
    postgres=#
    postgres=# \l
                                   List of databases
       Name    |  Owner   | Encoding | Collate |   Ctype    |   Access privileges
    -----------+----------+----------+---------+------------+-----------------------
     db1       | postgres | UTF8     | C       | en_US.UTF8 |
     postgres  | postgres | UTF8     | C       | C          |
     template0 | postgres | UTF8     | C       | C          | =c/postgres          +
               |          |          |         |            | postgres=CTc/postgres
     template1 | postgres | UTF8     | C       | C          | =c/postgres          +
               |          |          |         |            | postgres=CTc/postgres
    (4 rows)
    
    postgres=#
    
    
    postgres=# create database db2 with encoding='UTF8' lc_collate='en_US.UTF8' lc_ctype='en_US.UTF8' template='template0';
    
    postgres=#
    postgres=#
    postgres=# \l
                                     List of databases
       Name    |  Owner   | Encoding |  Collate   |   Ctype    |   Access privileges
    -----------+----------+----------+------------+------------+-----------------------
     db1       | postgres | UTF8     | C          | en_US.UTF8 |
     db2       | postgres | UTF8     | en_US.UTF8 | en_US.UTF8 |
     postgres  | postgres | UTF8     | C          | C          |
     template0 | postgres | UTF8     | C          | C          | =c/postgres          +
               |          |          |            |            | postgres=CTc/postgres
     template1 | postgres | UTF8     | C          | C          | =c/postgres          +
               |          |          |            |            | postgres=CTc/postgres
    
    

    在这里插入图片描述

    参考:

    展开全文
  • initdb是创建一个新的KingbaseES数据库集簇的命令 initdb [``option``...] [ --kingbase_data | -D ] ``directory`` 一个数据库集簇的创建包括创建存放数据库数据的目录、生成共享目录表(属于整个集簇而不是任何...
  • postgresql初始化之initdb

    千次阅读 2020-01-21 10:59:29
    initdb initdb创建了一个新的PostgreSQL数据库集群。数据库集群是由单个服务器实例管理的数据库集合。 创建数据库集群包括数据库所在的目录、生成共享目录表(属于整个集群而不是任何特定数据库的表)以及创建...
  • 1. gs_initdb简介 gs_initdb初始化数据库时,会创建数据库目录、生成系统表、创建默认数据库和模板数据库。 系统表 初始化数据库时会生成大量的系统表和视图,任何数据库用户都具备它们的查看权限。 说明: pg_user_...
  • Greenplum使用PostgreSQL的初始化机制来初始化集群,PostgreSQL使用initdb创建一个PostgreSQL实例。initdb从无到有创建单个空的可用的PostgreSQL数据库,也就是在一个空的目录中创建PostgreSQL运行所需要的所有文件...
  • 我正在开发一个在Linux系统上运行的PostgreSQL 9.x中的数据库集群(单个数据库)(CentOS – RedHat – Fedora)....我已将用户更改为“postgres”用“su postgres”然后尝试用“initdb”初始化数据库(这可...
  • cannot access '/docker-entrypoint-initdb.d/': Operation not permitted。docker run权限不足
  • 在flask initdb之前pip install flask-migrate,然后flask db init,然后再flask initdb,就建表成功了
  • K8S交付postgres数据库initdb报错 问题描述:在交付postgres到k8s启动时,出现初始化数据库的报错。 解决方法:手动用dockerfile修改一下原始镜像的配置文件,关闭huge_pages FROM postgres:11.8 RUN sed -i -...
  • 因为在initdb过程中,我只设定了-D参数,没有设定认证方式,所以这里authmethod为空,认证方式被设置为默认的trust。所以后续的代码相关的检查也被跳过。 接下来设定pgdata,但是我指定过-D参数,所以不会走下面这...
  • //创建pg_data目录 create_data_directory(); //创建pg_data/pg_wal目录 create_xlog_or_symlink(); //遍历获取sundirs下所有的目录,并且父目录都是pg_data开始创建目录,并且检查目录的有限性 ...
  • 记一次docker启动项目失败: 启动...尝试了answer的方法,无效 Cannot start PostgreSQL Docker container – "'/docker-entrypoint-initdb.d/': Operation not permitted" - Stack Overflowhttps://stackoverflow....
  • initdb 命令用于创建一个新的PostgreSQL数据库集簇 先看一下命令的用法 initdb [option…] [–pgdata | -D] directory 通过-D参数可以指定数据库集簇的目录,其他参数包括字符集,区域等可以参考官方手册 ...
  • static void test_config_settings(void) { /* This macro defines the minimum shared_buffers we want for a given max_connections value. The arrays show the settings to try. */ #define MIN_BUFS_FOR_CONNS...
  • 问题描述 ...2. initdb 添加 -d 参数运行查看相关输出信息: 输出信息表明数据库的 locale 被设定为 en_US.UTF-8 3. 设置 LC_ALL 为 zh_CN.UTF-8 并给 initdb 程序添加 -d 参数测试 The database clus
  • 上一期说了initdb的大概流程和初期准备,这一期说一说参数解析 首先看一下initdb的入口,main函数 main(int argc, char *argv[]) 这里有两个参数,argc和argv[] argc: 命令行总的参数个数 argv[]:保存命令行参数...
  • 解决办法(设置英文版字体编码):参考文章:Centos: 解决系统编码 locale 的 LC_CTYPE / LC_ALL 问题 – 源码巴士CentOS8 -bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8) 解决方法 | ...
  • 以bootstrap模式运行BKI脚本创建template1 static void bootstrap_template1(void) { PG_CMD_DECL; // #define PG_CMD_DECL char cmd[MAXPGPATH]; FILE *cmdfd char **line; char **bki_lines;...
  • 今天早上在一个新的服务器设备上面试图通过编译源码来按照PG数据库的函数,使用initdb初始化数据库簇时候报错了,错误提示信息如下: 通过结合源码分析排查看,可知这个错误码在是函数 ...
  • 在使用node tools/initdb.js初始化数据库的时候报错 Unhandled rejection Error: Error: /* Navicat Premium Data Transfer Source Server : Localhost Source Server Type : MySQL Source Server Version : 50717 ...
  • The files belonging to this database system will be owned by user "postgres". This user must also own the server process. ...initdb: invalid locale settings; check LANG and LC_* environment variables
  • dockerfile:FROM mysql:5.6.37ENV TZ "Asia/Shanghai"ENV MYSQL_ROOT_PASSWORD=test@2017ADD binlog.cnf /etc/mysql/conf.dADD init.sql /docker-entrypoint-initdb.d/EXPOSE 22 3306~容器启动,随后mysql启动后,...
  • initdb [ option...] --pgdata | -D directory DESCRIPTION 描述 initdb 创建一个新的 PostgreSQL 数据库集群。 一个数据库集群是由单个服务器实例管理的数据库集合。 创建数据库系统包括创建数据库数据的宿主...
  • The files belonging to this database system will be owned by user "postgres". This user must also own the server process. ...initdb: invalid locale settings; check LANG and LC_* environment variables

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,823
精华内容 7,129
关键字:

initdb