PostgreSQL数据库安装部署

文章目录

[隐藏]

  • 一、postgresql数据库部署
一、postgresql数据库部署

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

[[email protected] ~]# cd /package/  [[email protected] package]# ls  apache-tomcat-8.5.39.tar.gz  jdk-8u131-linux-x64.tar.gz  postgresql-10.5.tar.gz  redis-3.2.0.tar.gz  [[email protected] package]#  

2、解压缩包

[[email protected] package]# tar xf postgresql-10.5.tar.gz  [[email protected] package]# ls  apache-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  [[email protected] package]#  

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

[[email protected] postgresql-10.5]# ./configure --prefix=/usr/local/pgsql-10.5  checking build system type... x86_64-pc-linux-gnu  checking host system type... x86_64-pc-linux-gnu  checking which template to use... linux  checking whether NLS is wanted... no  checking for default port number... 5432  checking for block size... 8kB  checking for segment size... 1GB  checking for WAL block size... 8kB  checking for WAL segment size... 16MB  

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

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

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

[[email protected] postgresql-10.5]#yum install ncurses* readline* zlib* -y  ######################################  [[email protected] postgresql-10.5]# rpm -aq ncurses* readline* zlib*  readline-devel-6.2-10.el7.x86_64  zlib-static-1.2.7-18.el7.x86_64  ncurses-libs-5.9-14.20130511.el7_4.x86_64  ncurses-devel-5.9-14.20130511.el7_4.x86_64  readline-static-6.2-10.el7.x86_64  zlib-devel-1.2.7-18.el7.x86_64  readline-6.2-10.el7.x86_64  ncurses-base-5.9-14.20130511.el7_4.noarch  ncurses-5.9-14.20130511.el7_4.x86_64  zlib-1.2.7-18.el7.x86_64  [[email protected] postgresql-10.5]#  

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

[[email protected] postgresql-10.5]# ./configure --prefix=/usr/local/pgsql-10.5  checking build system type... x86_64-pc-linux-gnu  checking host system type... x86_64-pc-linux-gnu  checking which template to use... linux  checking whether NLS is wanted... no  checking for default port number... 5432  checking for block size... 8kB  checking for segment size... 1GB  checking for WAL block size... 8kB  checking for WAL segment size... 16MB  checking 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 -ldl  make[2]: Leaving directory `/package/postgresql-10.5/src/test/isolation'  make -C test/perl all  make[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 all  make[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 install  make[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目录

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

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

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

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

[[email protected] postgresql-10.5]# ln -s /usr/local/pgsql-10.5/ /usr/local/pgsql  [[email protected] postgresql-10.5]# ll /usr/local/pgsql  lrwxrwxrwx 1 root root 22 May 23 18:15 /usr/local/pgsql - /usr/local/pgsql-10.5/  [[email protected] postgresql-10.5]#  

12、进入刚创建的postgres用户

[[email protected] postgresql-10.5]# su postgres  [[email protected] postgresql-10.5]$  

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

[[email protected] ~]$ vim ~/.bash_profile    # .bash_profile    # Get the aliases and functions  if [ -f ~/.bashrc ]; then          . ~/.bashrc  fi    # User specific environment and startup programs    PATH=$PATH:$HOME/.local/bin:$HOME/bin  export PATH=$PATH:/usr/local/pgsql-10.5/bin  PGDATA=/usr/local/pgsql-10.5/data  export PGDATA  export PATH  

14、当前生效

[[email protected] ~]$ source ~/.bash_profile  [[email protected] ~]$  

15、测试

[[email protected] ~]$ which psql  /usr/local/pgsql-10.5/bin/psql  [[email protected] ~]$ psql -V  psql (PostgreSQL) 10.5  

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

[[email protected] ~]$ initdb /usr/local/pgsql-10.5/data  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.    creating directory /usr/local/pgsql-10.5/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 /usr/local/pgsql-10.5/data -l logfile start    [[email protected] ~]$    ***在此就已经部署成功了,现在要做的就是修改下配置文件,优化下***  

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

[[email protected] data]$ cp pg_hba.conf pg_hba.conf.`date +%F`  [[email protected] data]$ vim pg_hba.conf  #######################################  # TYPE  DATABASE        USER            ADDRESS                METHOD    # "local" is for Unix domain socket connections only  local  all            all                                    trust  # IPv4 local connections:  #host    all            all            127.0.0.1/32            trust  host    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                                    trust  host    replication    all            127.0.0.1/32            trust  ######################################  

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

[[email protected] data]$ cd /usr/local/pgsql/data/  [[email protected] data]$ cp postgresql.conf postgresql.conf.`date +%F`  [[email protected] 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目录用于存放开机日志,及启动数据库

[[email protected] data]$ mkdir /usr/local/pgsql/log  [[email protected] data]$ pg_ctl start -l /usr/local/pgsql-10.5/log/pg_server.log  waiting for server to start.... done  server started  [[email protected] data]$  

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

[[email protected] data]$ lsof -i:5432  COMMAND    PID    USER  FD  TYPE DEVICE SIZE/OFF NODE NAME  postgres 25479 postgres    3u  IPv4  50990      0t0  TCP *:postgres (LISTEN)  postgres 25479 postgres    4u  IPv6  50991      0t0  TCP *:postgres (LISTEN)  [[email protected] 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  [[email protected] data]$ ps -ef|grep postgres  root    24060  1297  0 18:17 pts/0    00:00:00 su postgres  postgres 24061 24060  0 18:17 pts/0    00:00:00 bash  postgres 25479    1  0 18:45 pts/0    00:00:00 /usr/local/pgsql-10.5/bin/postgres  postgres 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 -ef  postgres 25544 24061  0 18:46 pts/0    00:00:00 grep --color=auto postgres  [[email protected] data]$  

21、进入库的一些小操作

[[email protected] data]$ psql    #进入库  psql (10.5)  Type "help" for help.    postgres=# password    #设置密码  Enter new password:  Enter it again:  postgres=# CREATE DATABASE name;      #创建库  CREATE DATABASE  postgres=# 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 ROLE  postgres=#  

到此就大致部署完了。

原文出处:linuxsir -> http://www.linuxsir.org/linuxsjk/20894.html

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。