一. 安装配置Server
1. 安装
yum install postgresql-server postgresql-contrib -y
postgresql-server:这是 PostgreSQL 数据库服务器的核心软件包。它包括 PostgreSQL 数据库管理系统(DBMS)的服务器程序和相关的库文件。使用此软件包,您可以在服务器上运行 PostgreSQL 实例。
postgresql-contrib:不是 PostgreSQL 的核心组件,但它包含了一些有用的附加模块和扩展,这些模块可以提供额外的功能和功能。例如:
- pgcrypto:提供加密和散列功能,可用于数据加密和安全存储密码等任务
- hstore:允许您在 PostgreSQL 中存储和查询键值对数据。
- uuid-ossp:提供生成 UUID(通用唯一标识符)的函数,用于创建唯一标识符。
- ltree:用于处理树形结构的数据,例如文件系统路径。
- pg_trgm:用于文本搜索和相似性匹配的 trigram 支持。
- unaccent:提供文本搜索的非重音字符支持。
2. 初始化
postgresql-setup initdb
3. 设置自启
systemctl enable postgresql
systemctl start postgresql
4. 配置数据库
初始化会自动创建postgres用户,无密码
1) 修改密码
// 切换到postgres用户
su postgres
// 切换SQL模式
psql
// 修改密码
alter user postgres with password '你的密码';
// 退出
\q
附:如果想创建其他用户可参考如下命令:
// 创建test用户 create user <user> with password <password>; // 授权 grant all privileges on database <dbname> to <user>;
2) 配置访问权限
默认情况下,PostgreSQL只允许本地连接。如果您希望从其他计算机上的客户端连接到PostgreSQL服务器,需要修改pg_hba.conf文件以允许远程连接。
打开pg_hba.conf
文件进行编辑:
vi /var/lib/pgsql/data/pg_hba.conf
在文件中,您可以添加以下行,允许所有IP地址连接到PostgreSQL服务器。请谨慎使用这种配置,最好只允许来自可信任来源的连接:
host all all 0.0.0.0/0 md5
3) 配置监听地址和端口
非必须,如无需求跳过即可
打开postgresql.conf
文件进行编辑:
vi /var/lib/pgsql/data/postgresql.conf
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
#port = 5432 # (change requires restart)
# Note: In RHEL/Fedora installations, you can't set the port number here;
# adjust it in the service file instead.
- 监听地址
listen_addresses
,默认监听localhost,则有需要可修改为all或者其他地址。- 端口
port
,默认使用5432端口,如有需要可将修改为其他。
4) 重启数据库
systemctl restart postgresql
二. 连接数据库
1. 安装client
1) 在 CentOS/RHEL 上
yum install postgresql -y
2) 在 Ubuntu 上
apt-get install postgresql-client
2. 连接数据库
psql -U <用户名> -d <数据库名称> -h <数据库地址/localhost>
初始化时会默认创建名为postgres的数据库.
如果需要更高级的功能,您还可以安装其他 PostgreSQL 客户端工具,如 pgAdmin,它提供了图形界面来管理 PostgreSQL 数据库。
三. 常见问题
1. 连接本地数据库时报错Ident authentication failed
[root@bolin-postgresql data]# psql -U postgres -d postgres123 -h localhost
psql: FATAL: Ident authentication failed for user "postgres"
原因:
默认情况下,PostgreSQL 数据库可能使用 “ident” 身份验证方法,这要求您使用与您的系统用户名相匹配的 PostgreSQL 用户名来连接数据库。如果您要连接的 PostgreSQL 用户不与您的系统用户名相匹配,就会出现 “Ident authentication failed” 错误。
解决方法:
- 使用密码身份验证,打开
pg_hba.conf
文件,找到包含 “local” 的行,并将 “ident” 更改为 “md5”,如下所示:
local all all md5
并重启数据库
- 使用正确的PostgreSql用户。确保要连接的 PostgreSQL 用户存在,并且确保您使用正确的用户名连接。如果您使用不同的用户名,需要将用户名更改为正确的用户名。
四. postgresql常用命令
参见: postgresql最全命令合集
五. 数据库性能测试工具
1. BenchmarkSql
主要用于TPC-C
测试
参见:数据库测试工具BenchmarkSQL
2. 自带工具pgbench
主要用于TPC-B
测试