MySQL关系型数据库目前算是互联网公司使用最多的。前两天看到一个推文,相对比国内使用MySQL,PostgreSQL在国内的普及貌似不高?国外像网络电话公司Skype公司等在大量使用PostgreSQL
作为互联网从业者,保持学习是必须的。开始学习PostgreSQL作为技术储备
PostgreSQL 二进制安装
Centos下二进制安装一般是借助于 YUM 来安装。在 PostgreSQL的官网选定版本和操作系统之后,会自动生成YUM安装脚本
对应的页面地址为 https://www.postgresql.org/download/linux/redhat/
选择对应的 PostgreSQL版本、操作系统和架构,下面就生成了 YUM安装命令
安装命令
# 先安装PostgreSQL的YUM源
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安装server
sudo yum install -y postgresql14-server
# 先必须进行初始化
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
# 然后可以选择性的开启 开机自启动
sudo systemctl enable postgresql-14
# 启动服务
sudo systemctl start postgresql-14
但是有个问题
PostgreSQL 初始化数据库之后,默认的数据目录是在
/var/lib/pgsql
,但是该目录是在 根分区
下,一般建议放到独立的数据目录下
所以这里进行如下操作
# 新增 数据磁盘目录
mkdir /data/databases
# 停止数据库
systemctl stop postgresql-14
# 移动原始数据目录
mv /var/lib/pgsql /data/databases/
# 创建软连
cd /var/lib && ln -s /data/databases/pgsql pgsql
# 然后启动服务
systemctl start postgresql-14
最后验证安装是否成功
# 切换到 postgres 用户(yum安装时自动生成)
[root@test-demo-01-vm]$ su - postgres
# 直接输入 psql 回车, 输出 psql (14.6) 就代表安装成功
[postgres@test-demo-01-vm]$ psql
psql (14.6)
Type "help" for help.
# \l 列举目前实例中的所有数据库,类似mysql中的 show databases ;
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
(3 rows)
postgres=# \du
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
postgres=# \dg
List of roles
Role name | Attributes | Member of
-----------+------------------------------------------------------------+-----------
postgres | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
PostgreSQL 说明
1、从 \l
列举出来的数据库清单中,看到有三个数据库
- PostgreSQL中默认有两个特殊的数据库,template0/template1 模板数据库
就是说可以在这两个数据库中新增一些表、视图等,然后创建数据库的时候可以指定从那个模板数据库来克隆
,这样新增的数据库就会有对应的模板数据库包括的表或者视图等
- 创建数据库不指定模板数据库的时候,默认从
template1
克隆 - template0 是默认
最简化的数据库
,它不能连接到该库,也不能对其就行修改,要保持它的"干净"
- 使用 template1 模板库建库时不可指定新的 encoding 和 locale,而 template0 可以
- 默认这两个模板数据库都不可以被删除
- postgres 库是默认创建的非模板数据库,它是属于 postgres 数据库用户, 在Centos服务器还有个 postgres Linux用户
1、所以这里注意这三个postgres
的区别
2、Linux下切换到postgres用户直接使用客户端工具psql
连接时不加参数登录,其实就是使用 postgres 数据库用户登录
3、postgres
数据库用户是默认的超级用户
2、关于 PostgreSQL中的用户和角色
在PostgreSQL 中使用角色
来管理权限,可以把一系列权限分配给角色,当然也可以把权限分配给用户。
所以从这个角度理解的话,Postgresql 用户和角色 是一回事
,用户也是角色。 从上面的\du
或者 \dg
的结果就能知道
标签:en,PostgreSQL,postgres,PostgreSQL14,数据库,Centos7,UTF,安装,colinspace From: https://blog.51cto.com/colinspace/5927843