环境:
CentOS 7 64-bit
PostgreSQL 9.6
官网安装教程
https://wiki.postgresql.org/wiki/YUM_Installation
一、安装PostgreSQL 9.6
1、安装 yum 源
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-redhat96-9.6-3.noarch.rpm
2、安装完毕后更新源信息
yum update
3、列出可用的postgresql 包
yum list postgresql *
4、安装PostgreSQL
postgresql96-server 数据库核心服务端
postgresql96-contrib 附加第三方扩展
postgresql96-devel C语言开发Header头文件和库
yum install postgresql96-server postgresql96-contrib postgresql96-devel
安装后,可执行文件在 /usr/pgsql-9.6/bin/, 数据和配置文件在 /var/lib/pgsql/9.6/data/
5、将postgresql 加入系统PATH
vi /etc/profile
# 在文件最后加入以下语句
export PATH=$PATH:/usr/pgsql-9.6/bin
source /etc/profile
postgres --version
# 返回 postgres (PostgreSQL) 9.6.16
卸载PostgreSQL
#yum erase postgresql96
二、初始化数据库
安装软件包后,需要初始化和配置数据库。
/usr/pgsql-9.6/bin/postgresql96-setup initdb
三、启动服务
#设置开机自启
systemctl enable postgresql-9.6.service
#启动服务
systemctl start postgresql-9.6.service
#重启服务
systemctl restart postgresql-9.6
#服务状态
systemctl status postgresql-9.6
#查看进程
ps -ef|grep postgres
四、操作PostgreSQL数据库
4.0、修改Linux 系统用户 postgres 密码
PostgreSQL安装后会创建一个默认的linux用户postgres,密码是随机生成的,这里我们需要重新设置密码。
#删除用户postgres的密码
sudo passwd -d postgres
#设置用户postgres的密码
sudo -u postgres passwd
#设置的密码
@2020qazQAZ
4.1、修改PostgreSQL 默认数据库用户postgres密码
PostgreSQL 数据库安装完成,会自动生成一个名为postgres的数据库用户。
#切换至系统用户 postgres登录
su - postgres
#连接数据库(postgres),-U 后面接连接数据库名称
#说明:-h表示主机(Host),-p表示端口(Port),-U表示用户(User
psql -U postgres
输入psql后,会出现如下
postgres =
#修改数据库用户postgres 的密码
ALTER USER postgres with encrypted password 'postgres';
4.2、在名为postgres的默认数据库中创建名为test的模式
postgres = #CREATE SCHEMA test;
4.3、使用密码创建角色(用户)
postgres = #CREATE USER xxx PASSWORD 'yyy';
4.4、退出数据库
postgres =#\ q
4.5、退出用户
-bash-4.2$ exit
五、PostgreSQL常用命令
5.1、控制台常用命令
\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。
5.2、数据库基本操作指令
# 创建新表
CREATE TABLE user_tbl(name VARCHAR(200));
# 插入数据
INSERT INTO user_tbl(name) VALUES('张三');
# 选择记录
SELECT * FROM user_tbl;
# 更新数据
UPDATE user_tbl set name = '李四' WHERE name = '张三';
# 删除记录
DELETE FROM user_tbl WHERE name = '李四' ;
# 删除表格
DROP TABLE IF EXISTS user_tbl ;
六、本地连接PostgreSQL
一般这里直接使用使用navicat连接本地,PostgreSQL数据库时报错:
could not connect to server: Connection refused (0x0000274D/10061)
Is the server running on host"localhost" (:1)
and acceptingTCP/IP connections on port 5433 ?
6.1、检查服务是否启用
#启用服务
systemctl restart postgresql-9.6
6.2、防火墙或端口号
PostgreSQL默认是5432端口号
#防火墙添加5432端口:
firewall-cmd --permanent --zone=public --add-port=5432/tcp
#重新加载
firewall-cmd --reload
#重启防火墙
systemctl restart firewalld.service
#检查5432端口号是否有效
firewall-cmd --zone=public --query-port=5432/tcp
6.3、PostgreSQ配置文件是否修改正常
如果到了这一步,本地还是无法连接,一般都是配置文件,未修改,或改动有误导致的
修改postgresql.conf配置文件
默认安装在 /var/lib/pgsql/9.6/data/
#监听本地ip地址的连接
#listen_addresses = 'localhost'
#监听所有ip地址的连接
listen_addresses = '*'
修改pg_hba.conf配置文件
最下面添加
host all all 127.0.0.1/32 md5
重启服务,连接正常。
如果你觉得本篇文章对你有所帮助的话,麻烦请点击头像右边的关注按钮,谢谢!
技术在交流中进步,知识在分享中传播