- 安装postgresql仓库:
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- 安装客户端软件包:
yum install postgresql96
- 安装服务端软件包:
yum install postgresql96-server
- 初始化数据库并设置开机启动:
/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl enable postgresql-9.6
systemctl start postgresql-9.6
- 修改配置监听网段
若要允许其它IP地址访问该主机数据库,则必须修改 `postgresql.conf` 中的参数 listen_addresses 为 '*'
vim /var/lib/pgsql/9.5/data/postgresql.conf
listen_addresses = '*' #监听任何网段地址
- 允许远程主机登录
vim /var/lib/pgsql/9.6/data/pg_hba.conf
host all all 0.0.0.0/0 md5
- 修改本地登录权限
# "local" is for Unix domain socket connections only
#local all all peer
# 改为
local all all md5
- TYPE 表示主机类型,值可能为: 若为 `local` 表示是unix-domain的socket连接, 若为 `host` 是TCP/IP socket 若为 `hostssl` 是SSL加密的TCP/IP socket
- DATABASE 表示数据库名称,值可能为: `all` ,`sameuser`,`samerole`,`replication`,`数据库名称` ,或者多个 数据库名称用 `逗号`,注意ALL不匹配 replication
- USER 表示用户名称,值可以为: `all`,`一个用户名`,`一组用户名` ,多个用户时,可以用 `,`逗号隔开, 或者在用户名称前缀 `+` ;在USER和DATABASE字段,也可以写一个单独的 文件名称用 `@` 前缀,该文件包含数据库名称或用户名称
- ADDRESS 可以为 `主机名称` 或者`IP/32(IPV4) `或 `IP/128(IPV6)`,主机 名称以 `.`开头,`samehost`或`samenet` 匹配任意IP地址METHOD 可以为"trust","reject","md5","password","scram-sha-256","gss","sspi","ident","peer","pam","ldap","radius" or "cert"。注意 若为`password`则发送的为明文密码
示例:
# TYPE DATABASE USER ADDRESS METHOD
host all all 10.10.56.17/32 md5
允许IP地址为10.10.56.17的所有用户可以通过MD5的密码验证方式连接主机上所有的数据库。
- host 参数表示安装PostgreSQL的主机 all
- 第一个all 表示该主机上的所有数据库实例 all
- 第二个all 表示所有用户
- 10.10.56.17/32 表示需要连接到主机的IP地址,32表示IPV4
- md5 表示验证方式
修改配置文件pg_hba.conf 中的参数,必须重启 `postgreSql`服务:
- 重新加载postgresql
systemctl reload postgresql-9.6
- 查看版本号
psql --version
- 以postgres用户登陆终端
su - postgres
- 创建新用户dbuser
-bash-4.2$ createuser -s dbuser
-s表示是以superuser的身份创建用户
- 创建属于dbuser的数据库mydb
-bash-4.2$ createdb -O dbuser mydb
- 以dbuser的身份登录mydb数据库
psql -U dbuser -d mydb
- 以dbuser的身份登录目标服务器的mydb数据库
psql -h 127.0.0.1 -U dbuser -d mydb
- 以postgres用户登录postgres数据库,postgres是安装默认创建的用户,没有登录密码
psql postgres
- 查看库列表
postgres=# \l
- 查看用户列表
postgres=# \du
- 退出
postgres=# \q
- 创建root用户,createdb是权限,还有其他权限,比如superuser、createuser等,createdb是最小的权限
postgres=# create user root createdb;
- 删除用户
postgres=# drop user root;
- 修改root的密码为123456
postgres=# alter user root password '123456';
- 修改root的权限为superuser
postgres=# alter role root with superuser;
- 创建库testdb
postgres=# create database testdb owner root;
- 删除testdb库
postgres=# drop database testdb;
MAC系统安装PostgresSQL
- 使用homebrew安装postgresql9.6
brew install postgresql@9.6
- 安装完成后会提示将相关的路径加入到.bash_profile文件中
vi ~/.bash_profile
- 重新加载.bash_profile文件
source ~/.bash_profile
- 初始化数据库
initdb /usr/local/var/postgres
- 启动数据库服务
pg_ctl -D /usr/local/var/postgres -l logfile start
- 关闭数据库服务
pg_ctl -D /usr/local/var/postgres -l logfile stop
- 修改配置监听网段
vi /usr/local/var/postgres/postgresql.conf
listen_addresses = '*' #监听任何网段地址
- 允许远程主机登录
vim /usr/local/var/postgres/pg_hba.conf
host all all 0.0.0.0/0 trust
- 数据库备份
pg_dump -h 192.168.1.123 -U postgres postgres > postgres.bak
- 数据库恢复
psql -h localhost -U postgres -d mydb < postgres.bak