Centos7安装PostgreSQL 9.4
不同的系统和版本,可以参考:https://www.postgresql.org/download/linux/redhat/
选择对应的版本和安装步骤指导。
不同的pg版本安装步骤,会稍微有点区别,参考官方的步骤指导。总体上差不多。我这里以pg9.4为例。
Centos7安装PostgreSQL 9.4
1.Install the repository RPM(添加RPM)
yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
2.安装PostgreSQL Server packages:
yum install postgresql94-server postgresql94-contrib
3.设置自启动&启动数据库
systemctl enable postgresql-9.4.service
systemctl start postgresql-9.4.service
查看版本
psql --version
su - postgres
$psql -version
/usr/pgsql-9.4/bin/psql --version
SELECT version();
SHOW server_version;
SHOW server_version_num;
4.查看数据库状态
systemctl status postgresql-9.4.service
5.查看日志:
cat /var/log/message
日志文件的位置,systemctl status postgresql-9.4.service查看
6.初始化db
/usr/pgsql-9.4/bin/postgresql94-setup initdb
7.修改配置数据库的监听IP
vim /var/lib/pgsql/9.4/data/postgresql.conf
listen_addresses ='*'
8.修改安全配置文件、允许远程访问数据库指定网段(如果只允许指定主机,则利用32位掩码配置)
vim /var/lib/pgsql/9.4/data/pg_hba.conf
# IPv4 local connections: host all all 127.0.0.1/32 trust
host all all 192.168.100.0/24 trust
或者直接修改为允许所有访问:
host all all 0.0.0.0/0 trust
9.重新加载配置:
/usr/pgsql-9.4/bin/pg_ctl reload
10.重启数据库
systemctl restart postgresql-9.4
11.修改用户密码:
su - postgres
psql -U postgres
ALTER USER postgres WITH PASSWORD '1q2w3e'
\q
修改密码后重启数据库:
systemctl restart postgresql-9.4
12.配置系统防火墙开启远程访问端口
su postgres
vim /usr/lib/firewalld/services/postgres94.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Postgres 9.4 Database service</short>
<description>Postgres</description>
<portprotocol="tcp"port="5432"/>
</service>
firewall-cmd --permanent --add-service=postgres94
firewall-cmd --permanent --add-service=postgresql
firewall-cmd --permanent --add-port=5432/tcp //也可以直接通过端口开放的方式来配置
firewall-cmd --reload
firewall-cmd --list-services
firewall-cmd --list-ports
查看数据库端口监听状态:
netstat -an | grep 5432
=================== PostgreSQL常用命令 ===========================
创建新用户来访问PostgreSQL
# su - postgres
$ psql
postgres=#
现在位于数据库提示符下
显示所有数据库(相当于show databases;)
postgres=# \l
创建数据库新用户,如 dbuser:
postgres=# CREATEUSER testuser WITH PASSWORD '1q2w3e';
注意:语句要以分号结尾,密码要用单引号括起来。
创建用户数据库
postgres=# CREATE DATABASE testdb01 OWNER testuser;
将数据库的所有权限赋予用户
postgres=# GRANT ALL PRIVILEGES ON DATABASE testdb01 TO testuser;
postgres=# \q
获取当前db中所有的表信息:
select * from pg_tables;
查看用户的所有表(用户自定义的表,如果未经特殊处理,默认都是放在名为public的schema下)
postgres=# select tablename from pg_tables where schemaname='public';
创建表:
postgres=# create table test01(
id integer not null, name character(255) not null,
price decimal(8,2) not null,
primary key(id)
);
插入数据
postgres=# insert into test01(id,name,price) values (1,'a',11.5),(2,'b',20.3);
查看表结构
\d test01;
查看表的数据
select * from test01;
============================================
Centos7安装PostgreSQL 9.5
yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
yum install postgresql95-server postgresql95-contrib
/usr/pgsql-9.5/bin/postgresql95-setup initdb
systemctl enable postgresql-9.5.service
systemctl start postgresql-9.5.service
psql --version
su - postgres
psql -U postgres
ALTER USER postgres WITH PASSWORD '1q2w3e'
\q
vi /var/lib/pgsql/9.5/data/postgresql.conf
listen_addresses = '*'
vi /var/lib/pgsql/9.5/data/pg_hba.conf
host all all 192.168.100.0/24 trust
systemctl restart postgresql-9.5.service
firewall-cmd --zone=public --permanent --add-port=5432/tcp
firewall-cmd --reload
============================================
Centos7安装PostgreSQL 11.6
参考官方的指导:https://www.postgresql.org/download/linux/redhat/
安装:
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install postgresql11
yum install postgresql11-server
/usr/pgsql-11/bin/postgresql-11-setup initdb
systemctl enable postgresql-11
systemctl start postgresql-11
systemctl status postgresql-11 //可以看到配置文件默认路径位置:/var/lib/pgsql/11/data/
Postgresql默认的安装目录是/usr/pgsql-11,而默认的数据目录(PGDATA)是/var/lib/pgsql/11/data/,如果默认数据目录空间不够的话可以修改指定数据目录。
注意:如果初始化数据库的时候使用了自定义数据目录,那么在注册服务(service)前需要修改服务脚本中的默认的PGDATA路径
vim /usr/lib/systemd/system/postgresql-11.service
Environment=PGDATA=/var/lib/pgsql/11/data/
将默认路径改为你自定义数据目录,然后再注册数据库服务并启动:
systemctl daemon-reload //重新加载服务的unit配置文件(服务配置文件修改生效配置)
systemctl enable postgresql-11 //服务自动启动开启
systemctl start postgresql-11 //启动服务
systemctl stop postgresql-11 //停止服务
systemctl disable postgresql-11 //服务自动启动关闭
配置:
su - postgres
psql -U postgres
ALTER USER postgres WITH PASSWORD '1q2w3e'
\q
vim /var/lib/pgsql/11/data/postgresql.conf
listen_addresses = '*'
vim /var/lib/pgsql/11/data/pg_hba.conf
host all all 192.168.100.0/24 trust
systemctl restart postgresql-11
firewall-cmd --zone=public --permanent --add-port=5432/tcp
firewall-cmd --reload