postgresql數據庫部署

運維開發技術交流羣歡迎你們加入一塊兒學習(QQ:722381733)linux

1、postgresql數據庫部署web

  一、前往postgresql安裝包的目錄(這裏我部署的是10.5的版本)redis

[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  redis-3.2.0.tar.gz
[root@web1 package]# 

  二、解壓縮包sql

[root@web1 package]# tar xf postgresql-10.5.tar.gz 
[root@web1 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
[root@web1 package]# 

  三、進入解壓後生成的目錄文件進行編譯數據庫

[root@web1 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

  四、提示以下信息是缺乏包文件apache

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.

  五、安裝相應的包文件文件bootstrap

[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_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
[root@web1 postgresql-10.5]#

  六、安裝完成後從新編譯下vim

[root@web1 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

  七、解析文件(在postgresql-10.5目錄執行:make install),最後輸出結果沒提示異常【error】即可開始安裝了tomcat

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.

 

  八、開始安裝(在postgresql-10.5目錄執行:make install),最後輸出結果沒提示異常【error】便表示安裝成功bash

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

  九、安裝完成後能夠看到在/usr/local目錄上成了pgsql-10.5目錄

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

  十、建立用戶及設置/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.5
drwxr-xr-x  6 postgres postgres   56 May 23 18:06 pgsql-10.5
[root@web1 postgresql-10.5]# 

 

  十一、給/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/pgsql
lrwxrwxrwx 1 root root 22 May 23 18:15 /usr/local/pgsql -> /usr/local/pgsql-10.5/
[root@web1 postgresql-10.5]# 

  十二、進入剛建立的postgres用戶

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

  1三、設置環境變量(注意路徑)

[postgres@web1 ~]$ 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

  1四、當前生效

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

  1五、測試

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

  1六、初始化數據庫(initdb --help查看講情),指定庫文件路徑

[postgres@web1 ~]$ 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

[postgres@web1 ~]$ 

***在此就已經部署成功了,如今要作的就是修改下配置文件,優化下***

  1七、前往文件安裝所在地,修改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 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
######################################

  1八、前往文件安裝所在地,修改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
#########################################

 

 

  1九、建立log目錄用於存放開機日誌,及啓動數據庫

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

  20、檢查是否啓動,能夠看日誌

[postgres@web1 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)
[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 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
[postgres@web1 data]$ 

  2一、進入庫的一些小操做

[postgres@web1 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=# 

*****到此就大體部署完了,若有什麼問題以及不足之處,歡迎讀客在線批評****

相關文章
相關標籤/搜索