其实我已经原文copy 原文连接:https://blog.csdn.net/p106786860/article/details/49877483sql
1、在CentOS上安装PostgreSQL数据库 数据库
下面咱们就以CentOS系统为例,给你们讲解一下PostgreSQL的安装过程。 json
- [pengchengxiang@localhost ~]$ sudo yum install postgresql-server.x86_64
- Loaded plugins: fastestmirror, refresh-packagekit, security
- Setting up Install Process
- Loading mirror speeds from cached hostfile
- * base: mirrors.btte.net
- * extras: mirror.bit.edu.cn
- * updates: mirror.bit.edu.cn
- Resolving Dependencies
- --> Running transaction check
- ---> Package postgresql-server.x86_64 0:8.4.20-3.el6_6 will be installed
- --> Processing Dependency: postgresql(x86-64) = 8.4.20-3.el6_6 for package: postgresql-server-8.4.20-3.el6_6.x86_64
- --> Running transaction check
- ---> Package postgresql.x86_64 0:8.4.20-3.el6_6 will be installed
- --> Finished Dependency Resolution
- Dependencies Resolved
- ================================================================================
- Package Arch Version Repository Size
- ================================================================================
- Installing:
- postgresql-server x86_64 8.4.20-3.el6_6 updates 3.4 M
- Installing for dependencies:
- postgresql x86_64 8.4.20-3.el6_6 updates 2.6 M
- Transaction Summary
- ================================================================================
- Install 2 Package(s)
- Total download size: 6.0 M
- Installed size: 28 M
- Is this ok [y/N]: y
- Downloading Packages:
- (1/2): postgresql-8.4.20-3.el6_6.x86_64.rpm | 2.6 MB 00:02
- (2/2): postgresql-server-8.4.20-3.el6_6.x86_64.rpm | 3.4 MB 00:06
- --------------------------------------------------------------------------------
- Total 680 kB/s | 6.0 MB 00:09
- Running rpm_check_debug
- Running Transaction Test
- Transaction Test Succeeded
- Running Transaction
- Installing : postgresql-8.4.20-3.el6_6.x86_64 1/2
- Installing : postgresql-server-8.4.20-3.el6_6.x86_64 2/2
- Verifying : postgresql-8.4.20-3.el6_6.x86_64 1/2
- Verifying : postgresql-server-8.4.20-3.el6_6.x86_64 2/2
- Installed:
- postgresql-server.x86_64 0:8.4.20-3.el6_6
- Dependency Installed:
- postgresql.x86_64 0:8.4.20-3.el6_6
- Complete!
- [pengchengxiang@localhost ~]$ sudo service postgresql initdb
- Initializing database: [ OK ]
- [pengchengxiang@localhost ~]$ sudo service postgresql start
- Starting postgresql service: [ OK ]
- [pengchengxiang@localhost ~]$ sudo service postgresql status
- postmaster (pid 3496) is running...
问题:若是你在没有进行初始化数据库以前就启东postgrepsql服务,则会报错以下: post
- [pengchengxiang@localhost ~]$ sudo service postgresql start
- /var/lib/pgsql/data is missing. Use "service postgresql initdb" to initialize the cluster first.
- [FAILED]
若是想链接到数据库,须要切换到postgres用户下,而后使用psql链接到数据库中。在该用户下链接数据库,是不须要密码的。 this
- [pengchengxiang@localhost ~]$ sudo su - postgres
- -bash-4.1$ psql
- psql (8.4.20)
- Type "help" for help.
- postgres=#
- postgres=# \l
- List of databases
- Name | Owner | Encoding | Collation | Ctype | Access privileges
- -----------+----------+----------+-------------+-------------+-----------------------
- 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
- (3 rows)
默认安装上,PostgreSQL的数据库目录在/var/lib/pgsql/data目录。
- -bash-4.1$ ls -l /var/lib/pgsql/data/
- total 80
- drwx------. 5 postgres postgres 4096 Nov 16 23:55 base
- drwx------. 2 postgres postgres 4096 Nov 16 23:55 global
- drwx------. 2 postgres postgres 4096 Nov 16 23:55 pg_clog
- -rw-------. 1 postgres postgres 3411 Nov 16 23:55 pg_hba.conf
- -rw-------. 1 postgres postgres 1631 Nov 16 23:55 pg_ident.conf
- drwx------. 2 postgres postgres 4096 Nov 17 00:00 pg_log
- drwx------. 4 postgres postgres 4096 Nov 16 23:55 pg_multixact
- drwx------. 2 postgres postgres 4096 Nov 17 00:02 pg_stat_tmp
- drwx------. 2 postgres postgres 4096 Nov 16 23:55 pg_subtrans
- drwx------. 2 postgres postgres 4096 Nov 16 23:55 pg_tblspc
- drwx------. 2 postgres postgres 4096 Nov 16 23:55 pg_twophase
- -rw-------. 1 postgres postgres 4 Nov 16 23:55 PG_VERSION
- drwx------. 3 postgres postgres 4096 Nov 16 23:55 pg_xlog
- -rw-------. 1 postgres postgres 16886 Nov 16 23:55 postgresql.conf
- -rw-------. 1 postgres postgres 57 Nov 16 23:55 postmaster.opts
- -rw-------. 1 postgres postgres 45 Nov 16 23:55 postmaster.pid
PostgreSQL数据库的配置主要是经过修改数据目录下的postgresql.conf文件来实现的。
使用postgresql用户链接数据库后,进入到/var/lib/pgsql/data目录下,编辑postgresql.conf文件:
- # - Connection Settings -
- #listen_addresses = '*' # what IP address(es) to listen on;
- # comma-separated list of addresses;
- # defaults to 'localhost', '*' = all
- # (change requires restart)
- #port = 5432 # (change requires restart)
- [pengchengxiang@localhost ~]$ sudo service postgresql restart
- Stopping postgresql service: [ OK ]
- Starting postgresql service: [ OK ]
- # This is used when logging to stderr:
- logging_collector = on # Enable capturing of stderr and csvlog
- # into log files. Required to be on for
- # csvlogs.
- # (change requires restart)
- # These are only used if logging_collector is on:
- log_directory = 'pg_log' # directory where log files are written,
- # can be absolute or relative to PGDATA
- log_filename = 'postgresql-%a.log' # log file name pattern,
- # can include strftime() escapes
- log_truncate_on_rotation = on # If on, an existing log file of the
- # same name as the new log file will be
- # truncated rather than appended to.
- # But such truncation only occurs on
- # time-driven rotation, not on restarts
- # or size-driven rotation. Default is
- # off, meaning append to existing files
- # in all cases.
- log_rotation_age = 1d # Automatic rotation of logfiles will
- # happen after that time. 0 disables.
- log_rotation_size = 0 # Automatic rotation of logfiles will
共享内存的大小,用于共享数据块。若是你的机器上有足够的内存,能够把这个参数改的大一些,这样数据库就能够缓存更多的数据块,当读取数据时,就能够从共享内存中读,而不须要再从文件上去读取。
- # - Memory -
- shared_buffers = 32MB # min 128kB
- # (change requires restart)
单个SQL执行时,排序、hash json所用的内存,SQL运行完后,内存就释放了。
- # actively intend to use prepared transactions.
- #work_mem = 1MB # min 64kB