一,安装
-
1,创建用户
groupadd postgres
useradd -g postgres postgres
mkdir /data/postgres -
2,下载并安装
cd /data/tools/
wget http://ftp.postgresql.org/pub/source/v11.0/postgresql-11.0.tar.gz
tar xf postgresql-11.0.tar.gz
cd postgresql-11.0/
./configure --prefix=/data/postgres --without-readline
如不指定安装目录,则默认会安装在/usr/local/下。
如果编译出错,根据提示信息yum安装对应的包即可。
不报错继续即可
也可通过./configure --help可以看到编译相关的帮助信息
make
make过程比较耗时
打印如下信息即可
All of PostgreSQL successfully made. Ready to install.
make install
成功后会打印如下信息:
PostgreSQL installation complete. -
3,查看目录结构
cd /data/postgres/
[root@master1 postgres]# ll
总用量 16
drwxr-xr-x 2 root root 4096 6月 28 15:59 bin
drwxr-xr-x 6 root root 4096 6月 28 15:59 include
drwxr-xr-x 4 root root 4096 6月 28 15:59 lib
drwxr-xr-x 6 root root 4096 6月 28 15:59 share -
4,配置环境变量及目录权限
vim /etc/profile
export PGHOME=/data/postgres
export PGDATA=/data/postgres/data
export PGLIB=/data/postgres/lib
export PATH=$PGHOME/bin:$PATH
source /etc/profile
mkdir /data/postgres/data
mkdir /data/postgres/logs
chown -R postgres:postgres ../postgres
- 5,切换用户初始化数据库,再启动数据库
su postgres
initdb -D /data/postgres/data/
打印以下信息即可
Success. You can now start the database server using:
pg_ctl -D /data/postgres/data/ -l logfile start
启动数据库
pg_ctl -D /data/postgres/data/ -l /data/postgres/logs/logfile start
waiting for server to start.... done
server started
启动成功
可以查看启动日志 cat logs/logfile
此时可查看data目录,已经生成相应的配置文件及目录。
二,配置
- 1,修改用户密码
初始化完成后是没有密码的,可直接连接
su postgres 或 psql -U postgres
psql
psql (11.0)
Type "help" for help.
postgres=#
修改密码
postgres=# alter user postgres with password 'postgres@123'
postgres-#
\q 退出
用户名密码方式登录
psql -U postgres -W
- 2,修改默认配置文件
cd /data/postgres/data
初始化后基本是默认配置文件,可以自行修改
vim postgresql.conf
配置文件中,默认只能本机访问postgresql;
修改listen_addresses = 'localhost'为listen_addresses = '*',允许所有远程访问;
修改配置文件需要重启服务。
默认监听地址
!#listen_addresses = 'localhost'
listen_addresses = ''
!#默认监听端口
!#port = 5432
!#最大连接数,默认100
max_connections = 100
...
其他可参考中文社区
- 3,主机认证
修改pg_hba.conf文件需要重启服务
vim pg_hba.conf
!#在第82行之后,”IPv4 local connections”下新增允许的客户端;
!#“host” 代表主机类型,第一个“all”代表db ,第二个“all”代表user ,“172.29.3.67/32” 代表client ip,“trust”代表认证方式;
!#认证方式除“trust”外,还有“peer”, “ident”, “md5”, “password”等
85 # IPv4 local connections:
86 host all all 127.0.0.1/32 trust
87 host all all 172.16.200.162/32 trust
-
4,相关命令
!#查看状态
pg_ctl -D /data/postgres/data/ -l /data/postgres/logs/logfile status
!#停止服务
pg_ctl -D /data/postgres/data/ -l /data/postgres/logs/logfile stop
启动服务
pg_ctl -D /data/postgres/data/ -l /data/postgres/logs/logfile start -
5,测试
可以用pgadmin连接postgresql
pgadmin下载地址:https://www.pgadmin.org/download/
三,使用
- 1,简单命令
创建用户
postgres=# create user postuser1 with password 'user1@123';
创建数据库
同时指定数据库的所有者
postgres=# create database postdb1 owner postuser1;
数据库赋权
未赋权则账户只能登录控制台
postgres=# grant all privileges on database postdb1 to postuser1;
登录数据库
在操作系统层使用新建的账号登录新建的数据库,登录后提示符为“postdb1=>”;
如果在postgres账户下直接使用“postgres=# \c postdb1;”登录,则登录用户依然是postgres,
-bash-4.2$ psql -U postuser1 -d postdb1 -h 127.0.0.1 -p 5432
创建表
postdb1=> create table tb1(
id int primary key,
name VARCHAR(20),
salary real
);
插入表
postdb1=> insert into tb1(
id, name, salary)
values(
101, 'Mike', 5000.00
);
查询
postdb1=>select * from tb1;
- 2,基础备份
pg_basebackup -h 10.11.4.186 -p 5432 -U repl -F p -P -D /var/lib/pgsql/9.6/data/
-h,主库主机,-p,主库服务端口;
-U,复制用户;
-F,p是默认输出格式,输出数据目录和表空间相同的布局,t表示tar格式输出;
-P,同--progress,显示进度;
-D,输出到指定目录;
因为主库采用的是md5认证,这里需要密码认证。