前言
最近需要用到PostgreSQL,于是在vultr上租了一台centos服务器做实验,参考了一些博客资料,我将这些记录在博客里头,以便将来自己查看复习。
过程
我的服务器是Centos8,现在的Linux一般都自带了PostgreSql,但是可能不是最新的,所以一般还是建议到官网查找比较新的版本进行安装。
安装及配置
安装方式主要有3种:
- 利用centos自带的yum源进行安装
- 添加PostgreSql官网的地址然后使用yum安装
- 下载源码自己编译安装(基本不会考虑这个)
我采用的是第1种方法,不过在这里也提一下第2种方法:
进入官网,找到对应的版本,然后按照官网的提示进行安装
最新的版本是12.
按照第1种方式,直接输入以下命令:
sudo yum install postgresql
然后就是简单的配置了
sudo service postgresql initdb
sudo chkconfig postgresql on
sudo systemctl enable postgresql
sudo systemctl start postgresql
安装好以后,一般会有默认的名为postgres用户,执行以下命令进行登录
sudo -u postgres psql postgres
剩下的就是一些常用的命令了,可以自行上网搜索。
创建用户
一般不会使用默认的超级用户,而是自行创建一个用户。
首先,修改配置文件启用密码认证:
sudo vim /var/lib/pgsql/data/pg_hba.conf
找到以下两行:
host all all 127.0.0.1/32 ident
host all all ::1/128 ident
修改如下:
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
创建名为 dbuser 的用户并设置密码
sudo -u postgres createuser dbuser -P
创建名为 mydb 的数据库,并设置其所有者为我们新创建的用户 dbuser
sudo -u postgres createdb -O dbuser mydb
然后就可以使用新用户进行登录了。
远程访问
PostgresSQL 默认是不允许远程访问的,如果我们想要在别的机器上访问数据库,还需要做一些设置。
打开 postgresql.conf 文件
sudo vim /var/lib/pgsql/data/postgresql.conf
加入下面一行配置,表示允许来自任意 IP 的连接请求
listen_addresses = '*'
打开 pg_hba.conf 文件
sudo vim /var/lib/pgsql/data/pg_hba.conf
加入下面一行配置,表示对任意 IP 访问进行密码验证
host all all 0.0.0.0/0 md5
最后,重启 PostgreSQL 使配置生效
sudo systemctl restart postgresql
现在就可以远程访问 PostgreSQL 数据库啦