PostgreSQL 是一个功能强大的开源对象关系数据库系统,它使用并扩展了SQL语言,并结合了许多功能来安全地存储和扩展最复杂的数据工作负载。PostgreSQL的起源可以追溯到1986年,作为伯克利加利福尼亚大学POSTGRES 项目的一部分,在核心平台上进行了超过30年的积极开发。
PostgreSQL以其经过验证的架构,可靠性,数据完整性,强大的功能集,可扩展性以及软件背后的开源社区的奉献精神赢得了很高的声誉,从而始终如一地提供性能卓越的创新解决方案。 PostgreSQL可在所有主要操作系统上运行,自2001年以来一直兼容ACID,并且具有强大的附加功能,如流行的PostGIS地理空间数据库扩展器。
MySQL 被商业化后,PostgreSQL 变的越来越流行。PostgreSQL已经成为许多人和组织的开源关系数据库,这并不奇怪。
PostgreSQL 安装
以 CentOS 7 为例, PostgreSQL 版本为 9.6,执行以下命令就能顺利安装好 PostgreSQL 数据库:
安装 RPM 的仓库:
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
安装客户端:
yum install postgresql96
安装服务端:
yum install postgresql96-server
初始化数据库并设置数据库随系统启动:
/usr/pgsql-9.6/bin/postgresql96-setup initdb
systemctl enable postgresql-9.6
systemctl start postgresql-9.6
在执行 initdb 命令后,对数据库进行初始化,生成 data 目录,默认路径为:
/var/lib/pgsql/9.6/data
该目录下包括数据文件和配置文件,其中常用的配置文件有:
- pg_hba.conf
- pg_hba.conf
建议在修改配置文件前先备份一下,以免文件改坏了恢复。
PostgreSQL 的简单使用
PostgreSQL 服务启动后,就可以对数据库进行操作了。PostgreSQL 安装后会自动创建 postgres 用户,密码是随机生成的,所以需要修改一下。
修改密码
修改 Linux 的 postgres 用户密码:
删除密码
sudo passwd -d postgres
设置密码
sudo -u postgres passwd
输入两次密码
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
或者也可以切换到 root 帐号,直接重新设置 postgres 用户的密码:
su - root
passwd postgres
注意:这边提到的 postgres 用户是 Linux 系统的,不是数据库的用户。
修改数据库的 postgres 用户密码:
切换到 postgres 用户登陆:
su - postgres
psql
或者指定用户名登陆:
sudo -u postgres psql
登陆后修改密码:
ALTER USER postgres WITH PASSWORD 'postgres';
常用命令
输入 psql 登陆数据库后,就进入了命令行操作环境。psql 是PostgreSQL数据库提供的命令行终端程序,它允许我们交互地输入、编辑、执行SQL命令。使用psql进行数据库管理非常简单、轻量、高效,查看具体的指令可在 psql 环境下输入\?
表1:psql 命令
| 命令 | 说明 | 备注 |
|---|---|---|
| \c | 切换数据库 | 格式:\c[onnect] [数据库名|- [用户名称]] |
| \l | 查看数据库 | 相当于 MySQL 的 show databases |
| \d [table] | 列出数据库中的表或表结构 | 类似于 MySQL 的 desc table |
| \da | 列出聚合函数 | |
| \df | 列出函数 | |
| \di | 列出索引 | |
| \do | 列出操作符 | |
| \ds | 列出序列 | |
| \dt | 列出非系统表 | |
| \p | 打印当前查询缓冲区 | |
| \r | 重置(清空)查询缓冲区 | |
| \o | 将后面的查询结果输出到文件 | \o [ { filename | |command } ] |
| \q | 退出 psql 程序 | |
| \? | 获得关于反斜杠 (“\”) 命令的帮助 |
常用 SQL
数据库初始安装好后,默认有三个数据库:postgres、template0 和template1,其中 template0 和template1 为数据库模板,创建时直接可以使用其克隆一个新数据库。
创建数据库
CREATE DATABASE user;
删除数据库
DROP DATABASE pg_user;
创建表
--主键
CREATE table t_user(
id INTEGER,
name varchar(1000),
PRIMARY KEY(id)
);
--自增
create table t_busy(
id SERIAL PRIMARY KEY,
chk_id TEXT,
n INTEGER
);
--SERIAL代表自增,默认从1开始增加,每次自增1。
删除表
drop table t_role;
清空表
delete from t_user
TRUNCATE TABLE t_user
创建数据库也可以使用命令行方式创建:
createdb pg_user;
dropdb pg_user;
pgAdmin 管理工具使用
psql 工具是使用命令行来操作数据库的,相对来说不是很直观,对于喜欢图形画界面操作的同学来说,显得有点相形见绌了。pgAdmin 是 PostgreSQL 可视化管理的工具,能够在各种平台上运行,软件用C++编写,采用了优秀的 wxWidgets 跨平台工具包。
pgAdmin 安装配置
Windows 下直接下载可执行文件运行安装,基本都是点击下一步操作即可。安装完成后运行该工具,初始使用需要新增一个服务器连接,填写服务器信息:

添加数据库服务器的连接信息:

连接后,就进入了数据库的管理界面:

pgAdmin 连接数据库的常见问题
如果 PostgreSQL 是安装在 Linux 上,要确保 PostgreSQL 运行的端口在防火墙中开放。
could not connect to Server: Connection refused
解决方法: 版本 Versions 7.3.x 或者 7.4.x,在配置文件 postgresql.conf 中 增加 tcpip = true 配置; 版本 8.0.x+ 增加 listen_addresses=’*’ 配置。
no pg_hba.conf entry
解决方法: 在配置文件 pg_hba.conf 中 增加 IPV4 或 IPV6 地址,比如:
host template1 postgres 192.168.0.0/24 md5
详细错误说明请看这里。
191

被折叠的 条评论
为什么被折叠?



