一、 创建组合用户
1、创建组
groupadd postgres
2、创建用户
useradd -g postgres postgres
3、创建一个数据目录
mkdir -p /data/pg11
4、为目录设置所属主和所属组
chown -R postgres:postgres /data/pg11
5、为目录设置权限
chomd -R 775 /data/pg11
二、下载并安装
-
创建目录
mkdir -p /data/pg11/ -
进入该目录
cd /data/pg11/ -
下载
wget http://ftp.postgresql.org/pub/source/v11.0/postgresql-11.0.tar.gz -
解压
tar -zxvf postgresql-11.0.tar.gz -
切换到postgresql-11.0目录下
cd postgresql-11.0 -
执行命令
./configure --prefix=/data/pg11 --without-readline安装postgreSQL出现configure: error: zlib library not found解决方法
…configure: error: zlib library not found
If you have zlib already installed, see config.log for details on the
failure. It is possible the compiler isn’t looking in the proper directory.
Use --without-zlib to disable zlib support.解决方式:
yum install zlib-devel;如不指定安装目录,则默认会安装在/usr/local/下
-
编译
makemake过程比较耗时,打印如下信息即可:
All of PostgreSQL successfully made. Ready to install. -
安装
make install
成功后会打印如下信息:
PostgreSQL installation complete.
-
查看目录结构
cd /data/pg11/
[postgres@localhost pg11]$ ll
total 16
drwxr-xr-x. 2 postgres postgres 4096 Feb 22 22:52 bin
drwxr-xr-x. 4 postgres postgres 4096 Feb 22 22:52 include
drwxr-xr-x. 4 postgres postgres 4096 Feb 22 22:52 lib
drwxr-xr-x. 3 postgres postgres 24 Feb 22 22:52 share -
配置环境变量
vim /etc/profile
export PGHOME=/data/pg11
export PGDATA=/data/pg11/data
export PGLIB=/data/pg11/lib
export PATH= P G H O M E / b i n : PGHOME/bin: PGHOME/bin:PATH
source /etc/profile
mkdir /data/pg11/data
mkdir /data/pg11/logs
chown -R postgres:postgres ../pg11
- 切换用户初始化数据库,再启动数据库
su postgres
initdb -D /data/pg11/data/
打印以下信息即可
Success. You can now start the database server using:
pg_ctl -D /data/pg11/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
(2)psql
或者
(1) psql -U postgres[postgre@localhost pg11]$ psql -U postgres
psql (11.0)
Type “help” for help.postgres=#
这样代表登录成功
-
修改密码
待登录成功后输入
postgres=# alter user postgres with password ‘123’
postgres-#\q 退出
-
通过用户名和密码的方式登录
psql -U postgres -W
回车后待跳出输入密码的窗口后输入密码,再回车,则登录成功 -
修改默认配置文件
cd /data/pg11/data
初始化后基本是默认配置文件,可以自行修改
vim postgresql.conf配置文件中,默认只能本机访问postgresql;
修改listen_addresses = 'localhost’为listen_addresses = ‘*’,允许所有远程访问;
修改配置文件需要重启服务。!#默认监听端口
!#port = 5432
!#最大连接数,默认100
max_connections = 100都可以自行修改
-
主机认证
修改pg_hba.conf文件需要重启服务
vim pg_hba.conf
!#在”IPv4 local connections”之后,新增允许的客户端;“host” 代表主机类型,第一个“all”代表db, 第二个“all”代表user , “192.168.182.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 -
相关命令
!#查看状态
pg_ctl -D /data/pg11/data/ -l /data/pg11/logs/logfile status
!#停止服务
pg_ctl -D /data/pg11/data/ -l /data/pg11/logs/logfile stop
启动服务
pg_ctl -D /data/pg11/data/ -l /data/pg11/logs/logfile start
四、使用
-
简单命令
创建用户
postgres=# create user sk with password ‘123’;
创建数据库
同时指定数据库的所有者
postgres=# create database postdb1 owner sk;
数据库赋权
未赋权则账户只能登录控制台
postgres=# grant all privileges on database postdb1 to sk;登录数据库
在操作系统层使用新建的账号登录新建的数据库,登录后提示符为“postdb1=>”;
如果在postgres账户下直接使用“postgres=# \c postdb1;”登录,则登录用户依然是postgres,
psql -U sk -d postdb1 -h localhost -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;
基础备份
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认证,这里需要密码认证