关于postgresql

一,什么是postgresql?

官网:https://www.postgresql.org/

PostgreSQL是开源的对象-关系数据库数据库管理系统,在类似BSD许可与MIT许可的PostgreSQL许可下发行。

PostgreSQL这个单字的拼法让有些人觉得很难读,特别是那些把SQL读作”sequel”的人。PostgreSQL开发者把它读作”post-gress-Q-L”。。它也经常被简称为”postgres”。

开发者 PostgreSQL Global Development Group
初始版本 1996年7月8日,​24年前
稳定版本
13.3在维基数据编辑(2021年5月13日,20天前)
源代码库
  • git.postgresql.org/gitweb/?p=postgresql.git

编辑维基数据链接

编程语言 C语言
操作系统 LinuxWindowsFreeBSDOpenBSDNetBSDmacOSAIXHP/UXSolaris 等[3]
系统平台 x86x86_64IA64PowerPCPowerPC 64S/390S/390xSparcSparc 64ARMMIPSMIPSELPA-RISC 等[3]
语言 英语
类型 关系数据库
许可协议 PostgreSQL许可
网站 www.postgresql.org 编辑维基数据

参考:https://zh.wikipedia.org/wiki/PostgreSQL

二,安装,配置,使用postgresql

安装方式:

1)docker安装

2)源码编译安装

先演示docker 安装:

#下载官方最新镜像

[root@oracle-db-19c ~]# cat /etc/redhat-release
CentOS Linux release 8.3.2011

docker pull postgres

[root@oracle-db-19c ~]# docker images
Emulate Docker CLI using podman. Create /etc/containers/nodocker to quiet msg.
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/library/postgres latest 293e4ed402ba 13 days ago 322 MB


docker image inspect postgres:latest|grep "PG_VERSION"

#为postgresql创建持久化的卷存储

docker volume create postgres-data

#验证持久化数据目录

docker volume inspect postgres-data

docker volume 子命令

docker 专门提供了 volume 子命令来操作数据卷:
create        创建数据卷
inspect      显示数据卷的详细信息
ls               列出所有的数据卷
prune        删除所有未使用的 volumes,并且有 -f 选项
rm             删除一个或多个未使用的 volumes,并且有 -f 选项

#使用持久化数据存储启动 PostgreSQL 容器

docker run -d --restart=always --name postgres-server -p 5432:5432 -v postgres-data:/var/lib/postgresql/data -e "POSTGRES_PASSWORD=iloveKobe1977" postgres

#验证持久化数据目录的内容

ll /var/lib/containers/storage/volumes/postgres-data/_data

#验证本机登陆,在本地主机上安装 PostgreSQL 客户端包

1)添加PostgreSQL Yum存储库

dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2)在CentOS 8/RHEL 8上安装PostgreSQL 的相关软件

我们需要在CentOS 8上禁用PostgreSQL AppStream存储库,RHEL 8 Linux包含其他版本的PostgreSQL。

dnf -qy module disable postgresql

确认启用的存储库列表

dnf repolist

检查存储库中是否有PostgreSQL 13软件包

yum search postgresql13

现在在CentOS 8/RHEL 8上安装PostgreSQL 13软件客户端。

dnf install postgresql13

[root@oracle-db-19c ~]# psql -V
psql (PostgreSQL) 13.3

 

登陆

[root@oracle-db-19c lib]# psql -U postgres -h 127.0.0.1
Password for user postgres:
psql (13.3)
Type "help" for help.

postgres=#

参考:

1)https://techexpert.tips/zh-hans/%E6%B3%A2%E6%96%AF%E7%89%B9%E6%A0%BC%E9%9B%B7%E6%96%AF/postgresql-docker-%E5%AE%89%E8%A3%85/

启用远程数据库连接(可选)

a.编辑文件postgresql.conf 然后将“侦听地址”设置为服务器IP地址或所有接口的“ * ”。

[root@oracle-db-19c _data]# grep "listen_addresses" postgresql.conf
listen_addresses = '192.168.0.71'   #如果是docker安装的话,这里只能填*

b.编辑文件pg_hba.conf,还需设置PostgreSQL接受远程连接

[root@oracle-db-19c _data]# tail -2 pg_hba.conf
#accept from trusted subnet
host all all 192.168.0.0/24 md5

一般的postgresql的客户端有多个:

1)pgAdmin4(free)

参考:https://www.jianshu.com/p/e7fe45a10cee

2)Navicat Premium 15(not free)

3)phpMyAdmin

编译安装待补!!!

最后是常用的postgresql的命令

1)查看数据库(字母l)

\l

2)使用数据库

\c databaseName

3)查看表架构

\dn

4)常用命令

# 创建新表 
CREATE TABLE user_tbl(name VARCHAR(20), signup_date DATE);
# 插入数据 
INSERT INTO user_tbl(name, signup_date) VALUES('张三', '2013-12-22');
# 选择记录 
SELECT * FROM user_tbl;
# 更新数据 
UPDATE user_tbl set name = '李四' WHERE name = '张三';
# 删除记录 
DELETE FROM user_tbl WHERE name = '李四' ;
# 添加栏位 
ALTER TABLE user_tbl ADD email VARCHAR(40);
# 更新结构 
ALTER TABLE user_tbl ALTER COLUMN signup_date SET NOT NULL;
# 更名栏位 
ALTER TABLE user_tbl RENAME COLUMN signup_date TO signup;
# 删除栏位 
ALTER TABLE user_tbl DROP COLUMN email;
# 表格更名 
ALTER TABLE user_tbl RENAME TO backup_tbl;
# 删除表格 
DROP TABLE IF EXISTS backup_tbl;

5)其他控制台命令

\h:查看SQL命令的解释,比如\h select。
\?:查看psql命令列表。
\l:列出所有数据库。
\c [database_name]:连接其他数据库。
\d:列出当前数据库的所有表格。
\d [table_name]:列出某一张表格的结构。
\du:列出所有用户。
\e:打开文本编辑器。
\conninfo:列出当前数据库和连接的信息。

php环境下,安装postgresql扩展(pgsql和pdo_pgsql)

为了不重新编译php,使用phpize工具进行追加

1.下载phpX安装包

访问php官方下载页,找到自己对应的php版本:https://secure.php.net/downloads.php
wget //cn2.php.net/distributions/php-X.X.X.tar.gz

2.解压并进入ext扩展目录

tar xzf php-X.X.X.tar.gz
cd php-X.X.X/ext/pgsql 或者  cd php-X.X.X/ext/pdo_pgsql

3.运行phpize(我的php安装目录为/usr/local/php/)

whereis phpize
/usr/local/php/bin/phpize

4.编译安装

./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

5.修改php配置文件php.ini,添加pgsql.so模块

vi /usr/local/php/etc/php.ini

添加
extension=pgsql.so
extension=pdo_pgsql.so

6.重启php后,检查是否有pgsql模块

php -v
php -m

注:pdo_pgsql操作同上

关于postgresql
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
Scroll to top
0
Would love your thoughts, please comment.x
()
x