postgresql 安装

Posted knowledge-is-power

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了postgresql 安装相关的知识,希望对你有一定的参考价值。

参考:https://www.postgresql.org/docs/current/install-procedure.html

 

完事开头难!!!如果想了解一门技术,看文档必不可少,实操更不可少,这篇博文记录了自己学习postgesql的测试安装文档,由于对pg的参数了解甚少,目前使用的默认的参数。

 

1、下载安装介质、解压并配置软连接

https://www.postgresql.org/download/
找到 Source code-> 点击 file browser链接 https://www.postgresql.org/ftp/source/ 选择需要下载的对应版本源码安装介质
wget https://ftp.postgresql.org/pub/source/v10.5/postgresql-10.5.tar.gz
上传到/usr/local/src/postgresql-10.5.tar.gz
tar zxvf /usr/local/src/postgresql-10.5.tar.gz -C /usr/local
ln -s /usr/local/postgresql-10.5 /usr/local/pgsql

  

2、创建用户和目录并授权

 

useradd postgresql
echo "123456" | passwd --stdin postgresql
mkdir -pv /dbdata/pgsql10.5/pg5432/data
chown postgresql:postgresql /usr/local/pgsql
chown postgresql:postgresql /dbdata/pgsql10.5/pg5432/data

 

3、用户postgresql配置环境变量

 

export PGHOME=/usr/local/pgsql
export PGDATA=/dbdata/pgsql10.5/pg5432/data
export PGUSER=postgresql
LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:/usr/include
export LD_LIBRARY_PATH
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH

 

4、编译并安装

 

cd /usr/local/pgsql
./configure --prefix=/usr/local/pgsql  --with-pgport=5432
gmake
gmake world
gmake install
gmake install-world

说明:
/usr/local/pgsql/configure --help | grep size

  --with-blocksize=BLOCKSIZE
                          set table block size in kB [8]
  --with-segsize=SEGSIZE  set table segment size in GB [1]
  --with-wal-blocksize=BLOCKSIZE
                          set WAL block size in kB [8]
  --with-wal-segsize=SEGSIZE
                          set WAL segment size in MB [16]

这些参数在编译的时候可以指定,后续初始化后就不可以重新设置了,除非重新安装的时候指定这些参数。

 

5.初始化

 

[postgresql@lxdnode2 ~]$ initdb -E UTF8 -D $PGDATA -U admin -W --locale=C
The files belonging to this database system will be owned by user "postgresql".
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.

Enter new superuser password: 
Enter it again: 

fixing permissions on existing directory /dbdata/pgsql10.5/pg5432/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:

    pg_ctl -D /dbdata/pgsql10.5/pg5432/data -l logfile start

 

6.启动数据库

pg_ctl -D /dbdata/pgsql10.5/pg5432/data -l logfile start

  

7.连接数据库

[postgresql@lxdnode2 data]$ psql
psql: FATAL:  database "postgresql" does not exist

登录pg数据库的时候如果不指定-d参数默认就会找跟当前操作系统用户同名的database


[postgresql@lxdnode2 data]$ psql -d postgres -U admin
psql (10.5)
Type "help" for help.

postgres=# 

这里留下一个伏笔,如果刚刚接触pg的同学可能会好奇,明明设置了admin用户的密码了,为什么登录的时候没有要求密码验证就可以登录进去呢?

 

以上是关于postgresql 安装的主要内容,如果未能解决你的问题,请参考以下文章

如何在php脚本中接受PostgreSQL数据库数量?

Mac + virtualenv + pip + postgresql = 错误:找不到 pg_config 可执行文件

ubuntu14.04源代码安装postgresql 9.1

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

PHP代码-psysh调试代码片段工具

PostgreSQL远程代码执行漏洞(CVE-2018-1058)学习笔记