参考: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.初始化
[[email protected] ~]$ 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.连接数据库
[[email protected] data]$ psql psql: FATAL: database "postgresql" does not exist 登录pg数据库的时候如果不指定-d参数默认就会找跟当前操作系统用户同名的database [[email protected] data]$ psql -d postgres -U admin psql (10.5) Type "help" for help. postgres=# 这里留下一个伏笔,如果刚刚接触pg的同学可能会好奇,明明设置了admin用户的密码了,为什么登录的时候没有要求密码验证就可以登录进去呢?