PostgreSQL数据库安装部署

2023年 4月 29日 61.4k 0

一、postgresql数据库部署 1、前往postgresql安装包的目录(这里我部署的是10.5的版本) [root@web1 ~]# cd /package/ [root@web1 package]# ls apache-tomcat-8.5.39.tar.gz jdk-8u131-linux-x64.tar.gz postgresql-10.5.tar.gz

一、postgresql数据库部署

  1、前往postgresql安装包的目录(这里我部署的是10.5的版本)

[root@web1 ~]# cd /package/[root@web1 package]# lsapache-tomcat-8.5.39.tar.gz  jdk-8u131-linux-x64.tar.gz  postgresql-10.5.tar.gz  redis-3.2.0.tar.gz[root@web1 package]#

  2、解压缩包

[root@web1 package]# tar xf postgresql-10.5.tar.gz [root@web1 package]# lsapache-tomcat-8.5.39.tar.gz  jdk-8u131-linux-x64.tar.gz  postgresql-10.5  postgresql-10.5.tar.gz  redis-3.2.0.tar.gz[root@web1 package]#

  3、进入解压后生成的目录文件进行编译

[root@web1 postgresql-10.5]# ./configure --prefix=/usr/local/pgsql-10.5checking build system type... x86_64-pc-linux-gnuchecking host system type... x86_64-pc-linux-gnuchecking which template to use... linuxchecking whether NLS is wanted... nochecking for default port number... 5432checking for block size... 8kBchecking for segment size... 1GBchecking for WAL block size... 8kBchecking for WAL segment size... 16MB

  4、提示如下信息是缺少包文件

checking for library containing readline... noconfigure: error: readline library not foundIf you have readline already installed, see config.log for details on thefailure.  It is possible the compiler isn't looking in the proper directory.Use --without-readline to disable readline support.

  5、安装相应的包文件文件

[root@web1 postgresql-10.5]#yum install ncurses* readline* zlib* -y######################################[root@web1 postgresql-10.5]# rpm -aq ncurses* readline* zlib*readline-devel-6.2-10.el7.x86_64zlib-static-1.2.7-18.el7.x86_64ncurses-libs-5.9-14.20130511.el7_4.x86_64ncurses-devel-5.9-14.20130511.el7_4.x86_64readline-static-6.2-10.el7.x86_64zlib-devel-1.2.7-18.el7.x86_64readline-6.2-10.el7.x86_64ncurses-base-5.9-14.20130511.el7_4.noarchncurses-5.9-14.20130511.el7_4.x86_64zlib-1.2.7-18.el7.x86_64[root@web1 postgresql-10.5]#

  6、安装完成后重新编译下

[root@web1 postgresql-10.5]# ./configure --prefix=/usr/local/pgsql-10.5checking build system type... x86_64-pc-linux-gnuchecking host system type... x86_64-pc-linux-gnuchecking which template to use... linuxchecking whether NLS is wanted... nochecking for default port number... 5432checking for block size... 8kBchecking for segment size... 1GBchecking for WAL block size... 8kBchecking for WAL segment size... 16MBchecking for gcc... gcc

  7、解析文件(在postgresql-10.5目录执行:make install),最后输出结果没提示异常【error】便可开始安装了

rm -f pg_regress.o && ln -s ../../../src/test/regress/pg_regress.o .gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -Wl,--as-needed -Wl,-rpath,'/usr/local/pgsql-10.5/lib',--enable-new-dtags  -lpgcommon -lpgport -lpthread -lz -lreadline -lrt -lcrypt -ldlmake[2]: Leaving directory `/package/postgresql-10.5/src/test/isolation'make -C test/perl allmake[2]: Entering directory `/package/postgresql-10.5/src/test/perl'make[2]: Nothing to be done for `all'.make[2]: Leaving directory `/package/postgresql-10.5/src/test/perl'make[1]: Leaving directory `/package/postgresql-10.5/src'make -C config allmake[1]: Entering directory `/package/postgresql-10.5/config'make[1]: Nothing to be done for `all'.make[1]: Leaving directory `/package/postgresql-10.5/config'All of PostgreSQL successfully made. Ready to install.

  8、开始安装(在postgresql-10.5目录执行:make install),最后输出结果没提示异常【error】便表示安装成功

/bin/install -c -m 644 Makefile.global '/usr/local/pgsql-10.5/lib/pgxs/src/Makefile.global'/bin/install -c -m 644 Makefile.port '/usr/local/pgsql-10.5/lib/pgxs/src/Makefile.port'/bin/install -c -m 644 ./Makefile.shlib '/usr/local/pgsql-10.5/lib/pgxs/src/Makefile.shlib'/bin/install -c -m 644 ./nls-global.mk '/usr/local/pgsql-10.5/lib/pgxs/src/nls-global.mk'make[1]: Leaving directory `/package/postgresql-10.5/src'make -C config installmake[1]: Entering directory `/package/postgresql-10.5/config'/bin/mkdir -p '/usr/local/pgsql-10.5/lib/pgxs/config'/bin/install -c -m 755 ./install-sh '/usr/local/pgsql-10.5/lib/pgxs/config/install-sh'/bin/install -c -m 755 ./missing '/usr/local/pgsql-10.5/lib/pgxs/config/missing'make[1]: Leaving directory `/package/postgresql-10.5/config'PostgreSQL installation complete.

  9、安装完成后可以看到在/usr/local目录上成了pgsql-10.5目录

[root@web1 postgresql-10.5]# ll /usr/local/ |grep pgsql-10.5drwxr-xr-x  6 root root  56 May 23 18:06 pgsql-10.5[root@web1 postgresql-10.5]#

  10、创建用户及设置/usr/local/pgsql-10.5目录文件属主组

[root@web1 postgresql-10.5]# useradd postgres[root@web1 postgresql-10.5]# chown -R postgres.postgres /usr/local/pgsql-10.5/[root@web1 postgresql-10.5]# ll /usr/local/ |grep pgsql-10.5drwxr-xr-x  6 postgres postgres  56 May 23 18:06 pgsql-10.5[root@web1 postgresql-10.5]#

  11、给/usr/local/pgsql-10.5目录设置软连接(方便查看和管理吧....)

[root@web1 postgresql-10.5]# ln -s /usr/local/pgsql-10.5/ /usr/local/pgsql[root@web1 postgresql-10.5]# ll /usr/local/pgsqllrwxrwxrwx 1 root root 22 May 23 18:15 /usr/local/pgsql -> /usr/local/pgsql-10.5/[root@web1 postgresql-10.5]#

  12、进入刚创建的postgres用户

[root@web1 postgresql-10.5]# su postgres[postgres@web1 postgresql-10.5]$

  13、设置环境变量(注意路径)

[postgres@web1 ~]$ vim ~/.bash_profile

# .bash_profile

# Get the aliases and functionsif [ -f ~/.bashrc ]; then        . ~/.bashrcfi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/binexport PATH=$PATH:/usr/local/pgsql-10.5/binPGDATA=/usr/local/pgsql-10.5/dataexport PGDATAexport PATH

  14、当前生效

[postgres@web1 ~]$ source ~/.bash_profile [postgres@web1 ~]$

  15、测试

[postgres@web1 ~]$ which psql/usr/local/pgsql-10.5/bin/psql[postgres@web1 ~]$ psql -Vpsql (PostgreSQL) 10.5

  16、初始化数据库(initdb --help查看讲情),指定库文件路径

[postgres@web1 ~]$ initdb /usr/local/pgsql-10.5/dataThe 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.

creating directory /usr/local/pgsql-10.5/data ... okcreating subdirectories ... okselecting default max_connections ... 100selecting default shared_buffers ... 128MBselecting dynamic shared memory implementation ... posixcreating configuration files ... okrunning bootstrap script ... okperforming post-bootstrap initialization ... oksyncing data to disk ... ok

WARNING: enabling "trust" authentication for local connectionsYou 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 /usr/local/pgsql-10.5/data -l logfile start

[postgres@web1 ~]$

***在此就已经部署成功了,现在要做的就是修改下配置文件,优化下***

  17、前往文件安装所在地,修改pg_hba.conf配置文件

[postgres@web1 data]$ cp pg_hba.conf pg_hba.conf.`date +%F`[postgres@web1 data]$ vim pg_hba.conf######################################## TYPE  DATABASE        USER            ADDRESS                METHOD

# "local" is for Unix domain socket connections onlylocal  all            all                                    trust# IPv4 local connections:#host    all            all            127.0.0.1/32            trusthost    all            all            0.0.0.0/0              md5    #所有ip都可以通过密码连接# IPv6 local connections:host    all            all            ::1/128                trust# Allow replication connections from localhost, by a user with the# replication privilege.local  replication    all                                    trusthost    replication    all            127.0.0.1/32            trust######################################

  18、前往文件安装所在地,修改postgresql.conf配置文件

[postgres@web1 data]$ cd /usr/local/pgsql/data/[postgres@web1 data]$ cp postgresql.conf postgresql.conf.`date +%F`[postgres@web1 data]$ vim postgresql.conf########################################## - Connection Settings -

listen_addresses = '*'  #为了方便,监听所有# what IP address(es) to listen on;                                        # comma-separated list of addresses;                                        # defaults to 'localhost'; use '*' for all                                        # (change requires restart)#port = 5432                            # (change requires restart)max_connections = 100                  # (change requires restart)#superuser_reserved_connections = 3    # (change requires restart)#unix_socket_directories = '/tmp'      # comma-separated list of directories                                        # (change requires restart)#unix_socket_group = ''                # (change requires restart)#unix_socket_permissions = 0777        # begin with 0 to use octal notation#########################################

  19、创建log目录用于存放开机日志,及启动数据库

[postgres@web1 data]$ mkdir /usr/local/pgsql/log[postgres@web1 data]$ pg_ctl start -l /usr/local/pgsql-10.5/log/pg_server.logwaiting for server to start.... doneserver started[postgres@web1 data]$

  20、检查是否启动,可以看日志

[postgres@web1 data]$ lsof -i:5432COMMAND    PID    USER  FD  TYPE DEVICE SIZE/OFF NODE NAMEpostgres 25479 postgres    3u  IPv4  50990      0t0  TCP *:postgres (LISTEN)postgres 25479 postgres    4u  IPv6  50991      0t0  TCP *:postgres (LISTEN)[postgres@web1 data]$ netstat -lnutp|grep postgres(Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.)tcp        0      0 0.0.0.0:5432            0.0.0.0:*              LISTEN      25479/postgres      tcp6      0      0 :::5432                :::*                    LISTEN      25479/postgres      [postgres@web1 data]$ ps -ef|grep postgresroot    24060  1297  0 18:17 pts/0    00:00:00 su postgrespostgres 24061 24060  0 18:17 pts/0    00:00:00 bashpostgres 25479    1  0 18:45 pts/0    00:00:00 /usr/local/pgsql-10.5/bin/postgrespostgres 25481 25479  0 18:45 ?        00:00:00 postgres: checkpointer process  postgres 25482 25479  0 18:45 ?        00:00:00 postgres: writer process  postgres 25483 25479  0 18:45 ?        00:00:00 postgres: wal writer process  postgres 25484 25479  0 18:45 ?        00:00:00 postgres: autovacuum launcher process  postgres 25485 25479  0 18:45 ?        00:00:00 postgres: stats collector process  postgres 25486 25479  0 18:45 ?        00:00:00 postgres: bgworker: logical replication launcher  postgres 25543 24061  0 18:46 pts/0    00:00:00 ps -efpostgres 25544 24061  0 18:46 pts/0    00:00:00 grep --color=auto postgres[postgres@web1 data]$

  21、进入库的一些小操作

[postgres@web1 data]$ psql    #进入库psql (10.5)Type "help" for help.

postgres=# \password    #设置密码Enter new password: Enter it again: postgres=# CREATE DATABASE name;      #创建库CREATE DATABASEpostgres=# \du    #查看用户                                  List of roles Role name |                        Attributes                        | Member of -----------+------------------------------------------------------------+----------- postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

postgres=# postgres=# \l    #查看数据库列表                                  List of databases  Name    |  Owner  | Encoding |  Collate  |    Ctype    |  Access privileges  -----------+----------+----------+-------------+-------------+----------------------- name      | postgres | UTF8    | en_US.UTF-8 | en_US.UTF-8 |  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(4 rows)

postgres=# postgres=# create user test superuser password '123456';    #创建用户及密码CREATE ROLEpostgres=#

到此就大致部署完了。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论