Centos7 安装postgresql10
来自Linux78|wiki
更新源
地址:https://yum.postgresql.org/repopackages.php
yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
安装postgresql
先查看postgresql源
yum list | grep postgresql
安装的是这两个。postgresql10-contrib postgresql10-server
yum install postgresql10-contrib postgresql10-server -y
初始化数据库
Postgresql安装目录是/usr/pgsql-10,而Postgresql的数据目录是/var/lib/pgsql/版本号/data目录
在这里,如果在装系统开始分配var空间足够大则可以继续,如果分配var空间不够,我们需要更改数据目录,在这里,我们假设var空间足够大。直接开始初始化。
/usr/pgsql-10/bin/postgresql-10-setup initdb Initializing database ... OK
显示这个代表初始化成功
启动数据库并设置开机启动
sudo systemctl start postgresql-10 sudo systemctl enable postgresql-10
登录postgresql并设置密码
postgresql在安装时默认添加用户postgres
su - postgres psql ALTER USER postgres WITH PASSWORD '密码'; 退出:\q
备注其他:列出所有库\l 列出所有用户\du 列出库下所有表\d
持远程登录
默认情况下postgresql是不用密码不支持远程登录的。我们需要修改配置文件
vi /var/lib/pgsql/10/data/pg_hba.conf 添加 host all all 0.0.0.0/0 md5
改远程访问
vi /var/lib/pgsql/10/data/postgresql.conf listen_addresses = '*' port = 5432
重启postgresql
systemctl restart postgresql-10
登录postgresql
postgresql在安装时默认添加用户postgres
输入
su - postgres psql
此时已经可以进行验证密码
客户端登录验证
测试创建数据库及创建用户
因为postgres属于superuser,我们需要创建部分低权限用户
创建数据库
CREATE DATABASE testdb;
创建用户
CREATE USER testuser CREATEDB LOGIN PASSWORD 'testpassword';
将testdb所有权限赋给用户testuser
GRANT ALL ON DATABASE testdb TO testuser;
查看现有数据库及用户
postgres=# \l
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+-------------+-------------+-----------------------
postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres +
| | | | | postgres=CTc/postgres
testdb | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres+
| | | | | testuser=CTc/postgres
删除数据库及测试用户
删除数据库
drop database testdb;
删除用户
drop role testuser;