淘先锋技术网

首页 1 2 3 4 5 6 7

一、 创建组合用户

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

二、下载并安装

  1. 创建目录
    mkdir -p /data/pg11/

  2. 进入该目录
    cd /data/pg11/

  3. 下载
    wget http://ftp.postgresql.org/pub/source/v11.0/postgresql-11.0.tar.gz

  4. 解压
    tar -zxvf postgresql-11.0.tar.gz

  5. 切换到postgresql-11.0目录下
    cd postgresql-11.0

  6. 执行命令
    ./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/下

  7. 编译
    make

    make过程比较耗时,打印如下信息即可:
    All of PostgreSQL successfully made. Ready to install.

  8. 安装
    make install

成功后会打印如下信息:
PostgreSQL installation complete.

  1. 查看目录结构
    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

  2. 配置环境变量
    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
  1. 切换用户初始化数据库,再启动数据库
    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
  1. 启动数据库
    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. 修改用户名和密码

    初始化完成后是没有密码的,可直接连接
    (1)su postgres
    (2)psql
    或者
    (1) psql -U postgres

    [postgre@localhost pg11]$ psql -U postgres
    psql (11.0)
    Type “help” for help.

    postgres=#

    这样代表登录成功

  2. 修改密码
    待登录成功后输入
    postgres=# alter user postgres with password ‘123’
    postgres-#

    \q 退出

  3. 通过用户名和密码的方式登录
    psql -U postgres -W
    回车后待跳出输入密码的窗口后输入密码,再回车,则登录成功

  4. 修改默认配置文件
    cd /data/pg11/data
    初始化后基本是默认配置文件,可以自行修改
    vim postgresql.conf

    配置文件中,默认只能本机访问postgresql;
    修改listen_addresses = 'localhost’为listen_addresses = ‘*’,允许所有远程访问;
    修改配置文件需要重启服务。

    !#默认监听端口
    !#port = 5432
    !#最大连接数,默认100
    max_connections = 100

    都可以自行修改

  5. 主机认证
    修改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

  6. 相关命令
    !#查看状态
    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

四、使用

  1. 简单命令
    创建用户
    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认证,这里需要密码认证